{"id":10757,"name":"pytest-codspeed","ecosystem":"pip","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed","issues_count":121,"created_at":"2025-06-06T22:52:19.872Z","updated_at":"2025-06-06T22:52:19.872Z","purl":"pkg:pypi/pytest-codspeed","metadata":{"id":5392365,"name":"pytest-codspeed","ecosystem":"pypi","description":"Pytest plugin to create CodSpeed benchmarks","homepage":"https://codspeed.io/","licenses":"The MIT License (MIT)  Copyright (c) 2022 CodSpeed and contributors  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ","normalized_licenses":["Other"],"repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed","keywords_array":["codspeed","benchmark","performance","pytest"],"namespace":null,"versions_count":29,"first_release_published_at":"2022-11-05T15:48:13.000Z","latest_release_published_at":"2025-01-31T14:28:10.000Z","latest_release_number":"3.2.0","last_synced_at":"2025-06-06T12:46:46.486Z","created_at":"2022-11-05T15:53:09.978Z","updated_at":"2025-06-06T12:46:46.486Z","registry_url":"https://pypi.org/project/pytest-codspeed/","install_command":"pip install pytest-codspeed --index-url https://pypi.org/simple","documentation_url":"https://docs.codspeed.io/","metadata":{"funding":null,"documentation":"https://docs.codspeed.io/","classifiers":["Development Status :: 5 - Production/Stable","Framework :: Pytest","Intended Audience :: Developers","Intended Audience :: Information Technology","License :: OSI Approved :: MIT License","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Topic :: Software Development :: Testing","Topic :: System :: Benchmark","Topic :: Utilities","Typing :: Typed"],"normalized_name":"pytest-codspeed"},"repo_metadata":{"id":62745493,"uuid":"535377158","full_name":"CodSpeedHQ/pytest-codspeed","owner":"CodSpeedHQ","description":"Pytest plugin to create CodSpeed benchmarks","archived":false,"fork":false,"pushed_at":"2025-06-01T12:39:17.000Z","size":238,"stargazers_count":88,"open_issues_count":15,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-01T21:37:52.028Z","etag":null,"topics":["benchmarking","codspeed","pytest","python"],"latest_commit_sha":null,"homepage":"https://codspeed.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodSpeedHQ.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-11T17:41:50.000Z","updated_at":"2025-05-21T10:21:54.000Z","dependencies_parsed_at":"2023-11-14T14:29:13.793Z","dependency_job_id":"9196fb24-24f1-4617-bd76-557d416ef8d1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed","commit_stats":{"total_commits":79,"total_committers":3,"mean_commits":"26.333333333333332","dds":"0.025316455696202556","last_synced_commit":"367ef470149485a8267e491f14a6c413d2821b03"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodSpeedHQ","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257566568,"owners_count":22565900,"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":"CodSpeedHQ","name":"CodSpeed - Unmatched Performance Testing","uuid":"116658140","kind":"organization","description":"CodSpeed provides integrated CI tools for software engineering teams to anticipate the impacts of the next delivery on system performance.","email":"contact@codspeed.io","website":"https://codspeed.io","location":"United States of America","twitter":"codspeedhq","company":null,"icon_url":"https://avatars.githubusercontent.com/u/116658140?v=4","repositories_count":18,"last_synced_at":"2024-04-19T18:59:33.556Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CodSpeedHQ","funding_links":[],"total_stars":71,"followers":24,"following":0,"created_at":"2023-03-03T14:28:16.340Z","updated_at":"2024-04-19T18:59:36.739Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodSpeedHQ","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodSpeedHQ/repositories"},"tags":[{"name":"v3.3.0-beta","sha":"467118c37c43252950c8f6cb04533dacdf4eadd4","kind":"tag","published_at":"2025-05-27T08:48:36.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.3.0-beta","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.3.0-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.3.0-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.3.0-beta/manifests"},{"name":"v3.2.0","sha":"253b1bea24e909d257c7650265ff34e22af6a3bc","kind":"tag","published_at":"2025-01-31T14:23:40.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.2.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.2.0/manifests"},{"name":"v3.1.2","sha":"da9270dbed54be9ea55d601e774e855ce0978480","kind":"tag","published_at":"2025-01-09T13:36:46.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.2","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.2/manifests"},{"name":"v3.1.1","sha":"11de031ee1defbe67cdba634d0170489e99617cb","kind":"tag","published_at":"2025-01-07T16:25:56.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1/manifests"},{"name":"v3.1.1-beta3","sha":"7fa7d9314c5b978608d11af0a4f93f92de665672","kind":"tag","published_at":"2025-01-07T16:13:19.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.1-beta3","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.1-beta3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta3/manifests"},{"name":"v3.1.1-beta2","sha":"2064c0a827da7e0e9faa06dfdbc4b3dd0ba68d2f","kind":"tag","published_at":"2025-01-07T16:07:44.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.1-beta2","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.1-beta2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta2/manifests"},{"name":"v3.1.1-beta1","sha":"0ee5d12036e26b4c4a8ccca103a152ca9ae8f159","kind":"tag","published_at":"2025-01-07T16:00:35.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.1-beta1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.1-beta1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta1/manifests"},{"name":"v3.1.1-beta","sha":"9678a5e6e3aaa2597c588d3016d191760d5a7242","kind":"tag","published_at":"2025-01-07T15:32:44.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.1-beta","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.1-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.1-beta/manifests"},{"name":"v3.1.0","sha":"3b1a30c6e408a8c9a69af47cae56ec44a5a84ad5","kind":"tag","published_at":"2024-12-09T09:43:57.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.0/manifests"},{"name":"v3.1.0-beta","sha":"58bd8de9e7ed4c786b294100d09370dd770510d2","kind":"tag","published_at":"2024-12-06T01:19:26.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.1.0-beta","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.1.0-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.0-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.1.0-beta/manifests"},{"name":"v3.0.0","sha":"4f45b414b0e1955ba4a2ff1086097fa9a71ea24b","kind":"tag","published_at":"2024-10-29T16:44:13.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.0.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0/manifests"},{"name":"v3.0.0b4","sha":"d1c3db809e4b70eb2bc7ee04f931ae9b73240df3","kind":"tag","published_at":"2024-09-27T14:06:48.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.0.0b4","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.0.0b4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b4/manifests"},{"name":"v3.0.0b3","sha":"1a8df3685da1b8e6e4b97fdbb352d01b496d6659","kind":"tag","published_at":"2024-09-26T16:36:02.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.0.0b3","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b3/manifests"},{"name":"v3.0.0b2","sha":"0b8b2c5c893f87e9abb0348ba2d72002100684b6","kind":"tag","published_at":"2024-09-24T12:41:23.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.0.0b2","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.0.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b2/manifests"},{"name":"v3.0.0b1","sha":"7f04bd7e3cc57349407c4e95f08d88f192562d31","kind":"tag","published_at":"2024-09-20T08:36:55.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.0.0b1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.0.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b1/manifests"},{"name":"v3.0.0b0","sha":"c81f446d3281dc3b91bc10cde161f0ba30db5929","kind":"tag","published_at":"2024-09-18T14:55:20.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v3.0.0b0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v3.0.0b0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v3.0.0b0/manifests"},{"name":"v2.2.1","sha":"7546a2fd6f812c3201f85842fa2e733bcb689535","kind":"tag","published_at":"2024-03-19T21:59:09.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v2.2.1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.2.1/manifests"},{"name":"v2.2.0","sha":"faa4b7df22825e437c2e93e01a08044b459a592b","kind":"tag","published_at":"2023-09-01T12:53:29.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v2.2.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.2.0/manifests"},{"name":"v2.1.0","sha":"a752fb97040b18e1a1a39f242e0b8c396fbd509c","kind":"tag","published_at":"2023-07-27T13:20:45.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v2.1.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"3704ce06ee6e6dff2531682c8d66a0f3b955a1fc","kind":"tag","published_at":"2023-07-22T09:20:19.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v2.0.1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"48e42286995b02761d922fed9d88d758c0636a4e","kind":"commit","published_at":"2023-07-04T13:56:30.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v2.0.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v2.0.0/manifests"},{"name":"v1.2.2","sha":"e2d0815f42e79ee0b2dfacf29de0defbf1993b5f","kind":"tag","published_at":"2022-12-02T16:17:33.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.2.2","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"f2447579be60266b25440f263d58dd67936d9a17","kind":"tag","published_at":"2022-11-28T10:24:25.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.2.1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"bef56c0c8efa5db5e26372048270aa3687271298","kind":"tag","published_at":"2022-11-22T16:17:14.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.2.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"0fde8569a65f7c7e1d486f2f8bb944b082a29a1e","kind":"tag","published_at":"2022-11-10T09:09:59.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.1.0","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.1.0/manifests"},{"name":"v1.0.4","sha":"74bc70e723fcb3042fde72fcba5247360d030c09","kind":"commit","published_at":"2022-11-06T11:54:42.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.0.4","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.0.4/manifests"},{"name":"v0.0.3","sha":"b02c5afaa75c857e6786c343c6ac84c5876b8321","kind":"commit","published_at":"2022-11-06T02:07:12.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v0.0.3","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v0.0.3/manifests"},{"name":"v1.0.2","sha":"c7716a2c9ba9d46f7e49b1f6e15e66a19ed2ed81","kind":"commit","published_at":"2022-11-05T16:25:55.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.0.2","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.0.2/manifests"},{"name":"v1.0.1","sha":"5882ff9263f0a5ada9e230353f0326cdf17eee35","kind":"commit","published_at":"2022-11-05T15:47:50.000Z","download_url":"https://codeload.github.com/CodSpeedHQ/pytest-codspeed/tar.gz/v1.0.1","html_url":"https://github.com/CodSpeedHQ/pytest-codspeed/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodSpeedHQ%2Fpytest-codspeed/tags/v1.0.1/manifests"}]},"repo_metadata_updated_at":"2025-06-02T06:29:25.954Z","dependent_packages_count":14,"downloads":297958,"downloads_period":"last-month","dependent_repos_count":38,"rankings":{"downloads":1.450621857935956,"dependent_repos_count":2.3701220971989465,"dependent_packages_count":1.4010328199632927,"stargazers_count":12.484701285472113,"forks_count":19.14310043983532,"docker_downloads_count":null,"average":7.369915700081125},"purl":"pkg:pypi/pytest-codspeed","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pytest-codspeed","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pytest-codspeed","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pytest-codspeed/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-codspeed/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-codspeed/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-codspeed/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pytest-codspeed/related_packages","maintainers":[{"uuid":"art049","login":"art049","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/art049/","role":null,"created_at":"2023-02-26T04:09:39.089Z","updated_at":"2023-02-26T04:09:39.089Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/art049/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690499,"maintainers_count":292846,"namespaces_count":0,"keywords_count":228675,"github":"pypi","metadata":{"funded_packages_count":48967},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-07T05:28:50.775Z","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":50,"unique_repositories_count_past_30_days":14,"recent_issues":[{"uuid":"4556571063","node_id":"PR_kwDOSXLGM87hCxDL","number":15,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 12 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-07T04:29:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T04:33:07.000Z","updated_at":"2026-06-07T04:29:39.000Z","time_to_close":604590,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":12,"packages":[{"name":"apprise","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/caronc/apprise"},{"name":"click","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"cyclopts","old_version":"4.15.0","new_version":"4.16.1","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.20.3","new_version":"0.21.1","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.15","new_version":"0.11.17","repository_url":"https://github.com/astral-sh/uv"},{"name":"redis","old_version":"7.4.0","new_version":"8.0.0","repository_url":"https://github.com/redis/redis-py"},{"name":"virtualenv","old_version":"21.3.3","new_version":"21.4.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.14","new_version":"0.15.15","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.10.0` | `1.11.0` |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.15.0` | `4.16.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.48.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.20.3` | `0.21.1` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.15` | `0.11.17` |\n| [redis](https://github.com/redis/redis-py) | `7.4.0` | `8.0.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.3.3` | `21.4.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.14` | `0.15.15` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `5.0.2` | `5.0.3` |\n\n\nUpdates `apprise` from 1.10.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eA big win for this release is priortization of grouped/tagged content. Basically, this release allows you to tag multiple items and provide a weight to them.   Apprise will attempt to notify the highest priority/weighted services first (of same level), and only if this level fails will it try the next.  Tagging is no longer just a \u003ccode\u003etag\u003c/code\u003e.  It's now \u003ccode\u003eweight:tag\u003c/code\u003e too;  for example \u003ccode\u003e100:friends\u003c/code\u003e  associates the weight of \u003ccode\u003e100\u003c/code\u003e with the tag \u003ccode\u003efriends\u003c/code\u003e.  You can still continue to notify friends with your Apprise calls, but if there are weight categories, then these will be factored into the order.  Highest priority (weighted) tags have a lower integer value (zero being the  higest priority).  Only the next priority will be notified if the first fails.\u003c/p\u003e\n\u003cp\u003eThis releae also allows you to set up a notifiation service to gracefully fail and not have Apprise itself report a failure.  This is useful for situations where you notify several end points and you really don't care if they're unavailable or not.   Apprise wil do it's usual best effort to send the notification, but not treat it as a failure if it can't get through. Use \u003ccode\u003eoptional=yes\u003c/code\u003e on your Apprise URL.\u003c/p\u003e\n\u003cp\u003eThirdly, this release introduces retries! You can now have Apprise attempt to notify your endpoint a second, or a third, (up to 10x) tries before giving up and deeming it unable to send the notification.  Use \u003ccode\u003eretry=X\u003c/code\u003e on your Apprise URL\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Zoom (Incoming Webhook) Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1596\"\u003ecaronc/apprise#1596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded WeChat Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1598\"\u003ecaronc/apprise#1598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRingCentral Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/878\"\u003ecaronc/apprise#878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSession Open Group Server Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1615\"\u003ecaronc/apprise#1615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded HumHub Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1623\"\u003ecaronc/apprise#1623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon Chime Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1627\"\u003ecaronc/apprise#1627\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGroupMe Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1629\"\u003ecaronc/apprise#1629\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimproved robustness of windows test cases preventing others from passing in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1609\"\u003ecaronc/apprise#1609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle XMPP SASL SCRAM-PLUS / Channel Binding in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1619\"\u003ecaronc/apprise#1619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTRACE logging during apprise init cleaned up in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1622\"\u003ecaronc/apprise#1622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed mastodon error: AttributeError -  'list' object has no attribute 'union' in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1631\"\u003ecaronc/apprise#1631\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eo365:// saveToSentItems configurable - ?savesent=no in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1599\"\u003ecaronc/apprise#1599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdated WhatsApp Buisness Graph API to v21 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1603\"\u003ecaronc/apprise#1603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Built in retries, escalations, priorities, and optional service calls in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1601\"\u003ecaronc/apprise#1601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSlack Template/Payload support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1604\"\u003ecaronc/apprise#1604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Slack workflows and trigger support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1605\"\u003ecaronc/apprise#1605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:rocket: Pushover E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1612\"\u003ecaronc/apprise#1612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWKD support added to email plugin in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1614\"\u003ecaronc/apprise#1614\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1618\"\u003ecaronc/apprise#1618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon SNS/SES Improvements in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1620\"\u003ecaronc/apprise#1620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNotifico Standalone Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1275\"\u003ecaronc/apprise#1275\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1593\"\u003ecaronc/apprise#1593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTwitter/X migration to API v2 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1607\"\u003ecaronc/apprise#1607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimprovements to workflow:// based on recent slack:// changes in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1608\"\u003ecaronc/apprise#1608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:unlock: Added redirect= for allowing url redirection control in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1610\"\u003ecaronc/apprise#1610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emqtt:// now depends on paho-mqtt v2.1.0+ in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1613\"\u003ecaronc/apprise#1613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:skull: Retire msteams:// as it is no longer in service upstream in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1625\"\u003ecaronc/apprise#1625\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.11.0 from PyPI\r\npip install apprise==1.11.0\r\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/158c4e1febc3e6093b0f357776b315a90c8a89b5\"\u003e\u003ccode\u003e158c4e1\u003c/code\u003e\u003c/a\u003e bumped version to v1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/21db421ee89b24f1716a4fce74a4404a94bbabe7\"\u003e\u003ccode\u003e21db421\u003c/code\u003e\u003c/a\u003e GroupMe Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/f1e4ad2fd6659529597b1e07a1e44192faebff54\"\u003e\u003ccode\u003ef1e4ad2\u003c/code\u003e\u003c/a\u003e fixed mastodon error: AttributeError - 'list' object has no attribute 'union'...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e17fe9dd64dd79e373877cf8ee07595cc50a01cc\"\u003e\u003ccode\u003ee17fe9d\u003c/code\u003e\u003c/a\u003e Amazon Chime Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1627\"\u003e#1627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/dfdac59c9945385c4c75613e57d19558ec995d50\"\u003e\u003ccode\u003edfdac59\u003c/code\u003e\u003c/a\u003e HumHub Support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1623\"\u003e#1623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9de0397c30a7a2e58eb57c8da995ec54eada80bc\"\u003e\u003ccode\u003e9de0397\u003c/code\u003e\u003c/a\u003e Notifico Standalone Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/c3e67e61d35a1b0609d176786db1e0b2cc1287da\"\u003e\u003ccode\u003ec3e67e6\u003c/code\u003e\u003c/a\u003e Retired msteams:// - as it is no longer in service upstream (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1625\"\u003e#1625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/b463f23979455b61c548a550e40a3c75f0191b30\"\u003e\u003ccode\u003eb463f23\u003c/code\u003e\u003c/a\u003e TRACE logging during apprise init cleaned up (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1e2fdeb72bd8165ad613b162794778ff1c684e67\"\u003e\u003ccode\u003e1e2fdeb\u003c/code\u003e\u003c/a\u003e Amazon SNS/SES Improvements (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4706d0a4599a5072c8ae17375ee81862bcaac460\"\u003e\u003ccode\u003e4706d0a\u003c/code\u003e\u003c/a\u003e Handle XMPP SASL SCRAM-PLUS / Channel Binding (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1619\"\u003e#1619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.10.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.0 to 8.4.1\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.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 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.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32?closed=1\"\u003ehttps://github.com/pallets/click/milestone/32?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\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.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. :issue:\u003ccode\u003e3458\u003c/code\u003e :issue:\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. :issue:\u003ccode\u003e3277\u003c/code\u003e :pr:\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion\nresult. :issue:\u003ccode\u003e3015\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. :issue:\u003ccode\u003e3487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. :issue:\u003ccode\u003e3449\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/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e change log and doc fixes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e Fix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e fix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e fix I/O operation on closed file error with CliRunner and echo_via_pager (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e pager doesn't close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e Handle empty bytes in echo (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e handle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager callbacks (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e Document ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.0...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.15.0 to 4.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.16.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix fish completion for positional args and run fish tests in ci by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/823\"\u003eBrianPugh/cyclopts#823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix zsh completion recursion when \u003ccode\u003eprog_name\u003c/code\u003e matches a builtin helper by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/825\"\u003eBrianPugh/cyclopts#825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd ubuntu-24.04-arm to the CI testing matrix by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/822\"\u003eBrianPugh/cyclopts#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing typer Option imports in flag negation examples by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.16.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn-value objects can now declare their own exit code by defining a \u003ccode\u003e__cyclopts_returncode__\u003c/code\u003e method, which is honored by all built-in \u003ccode\u003eresult_action\u003c/code\u003e handlers. Custom \u003ccode\u003eresult_action\u003c/code\u003e callables can opt in via the new \u003ccode\u003ecyclopts.resolve_returncode\u003c/code\u003e helper. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/818\"\u003eBrianPugh/cyclopts#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://peps.python.org/pep-0692/\"\u003ePEP 692\u003c/a\u003e support: when \u003ccode\u003e**kwargs\u003c/code\u003e is annotated as \u003ccode\u003eUnpack[SomeTypedDict]\u003c/code\u003e, the TypedDict's fields are promoted to top-level CLI options instead of the generic \u003ccode\u003e--[KEYWORD]\u003c/code\u003e catch-all. Per-field \u003ccode\u003eRequired\u003c/code\u003e / \u003ccode\u003eNotRequired\u003c/code\u003e markers are respected independently of the parent kwargs argument. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/819\"\u003eBrianPugh/cyclopts#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCycloptsError.msg\u003c/code\u003e now accepts a \u003ccode\u003erich.Text\u003c/code\u003e instance. Cyclopts' error-message style palette is exposed as \u003ccode\u003ecyclopts.exceptions.STYLE_OFFENDING_VALUE\u003c/code\u003e, \u003ccode\u003eSTYLE_NAME\u003c/code\u003e, \u003ccode\u003eSTYLE_VALID_CHOICE\u003c/code\u003e, \u003ccode\u003eSTYLE_SUGGESTION\u003c/code\u003e, and \u003ccode\u003eSTYLE_SOURCE\u003c/code\u003e . By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/814\"\u003eBrianPugh/cyclopts#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.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/BrianPugh/cyclopts/commit/ea77abc99ef67dc4da21548d3b2ff2150c265afe\"\u003e\u003ccode\u003eea77abc\u003c/code\u003e\u003c/a\u003e fix zsh completion recursion when prog_name matches a builtin helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/e297647b12b71155d01f87e8e1d5e008c90962b6\"\u003e\u003ccode\u003ee297647\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/824\"\u003e#824\u003c/a\u003e from SAY-5/docs-fix-typer-option-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/923a5648ed221c1f7683810851c4ade348149fa4\"\u003e\u003ccode\u003e923a564\u003c/code\u003e\u003c/a\u003e docs: add missing typer Option imports in flag negation examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ddb9cc2ec53ad103a4525e399afa92188ac81ae3\"\u003e\u003ccode\u003eddb9cc2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/823\"\u003e#823\u003c/a\u003e from BrianPugh/fish-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/bd56e32b839d9b90e060b1fd88105985194887db\"\u003e\u003ccode\u003ebd56e32\u003c/code\u003e\u003c/a\u003e fix fish completion for positional args and run fish tests in ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/fba7293a546d7569f8cb74a85badc0a8f9401691\"\u003e\u003ccode\u003efba7293\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/822\"\u003e#822\u003c/a\u003e from BrianPugh/arm-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/17e22f16883a7132b9d9bc12dc18c16b726d8a73\"\u003e\u003ccode\u003e17e22f1\u003c/code\u003e\u003c/a\u003e skip global zsh rcs in completion tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/4cc78acd473f09d1e6267ed92f3ca24358c4b8cd\"\u003e\u003ccode\u003e4cc78ac\u003c/code\u003e\u003c/a\u003e install zsh in linux ci runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5c87c2752b494e9486f422d48473d206cd6ab66e\"\u003e\u003ccode\u003e5c87c27\u003c/code\u003e\u003c/a\u003e add ubuntu-24.04-arm to the CI testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/be2b4295f4632315ae1e49c8f3799bc71086a751\"\u003e\u003ccode\u003ebe2b429\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/819\"\u003e#819\u003c/a\u003e from BrianPugh/pep-692\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.3 to 7.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\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/tkem/cachetools/commit/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e Release v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e Update build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e Add threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e Run threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 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\u003c!-- 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/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.136.1...0.136.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.47.0 to 0.48.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.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults 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/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\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/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\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.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.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.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/73e84e58d7f6b8b3dfd8a9e3e42d716862250f33\"\u003e\u003ccode\u003e73e84e5\u003c/code\u003e\u003c/a\u003e Version 0.48.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45ea11690b4a62fa6df339d2b6ee3b8545a418e0\"\u003e\u003ccode\u003e45ea116\u003c/code\u003e\u003c/a\u003e Ignore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dd4394c3cbfd9f27a696a7b08047149690058158\"\u003e\u003ccode\u003edd4394c\u003c/code\u003e\u003c/a\u003e chore(deps): bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/abe07818a191cd036dc3824d802d052207e01c7e\"\u003e\u003ccode\u003eabe0781\u003c/code\u003e\u003c/a\u003e Default \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydocket` from 0.20.3 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chrisguidry/docket/releases\"\u003epydocket's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.21.1 - Eight misbehavin'\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eredis-py==8.0.0\u003c/code\u003e changed a default timeout that broke long-lived blocking connections (like pubsub and streams).  With this release, that's fixed and we support (and have tests for) redis-py 5.x, 6.x, 7.x, and 8.x\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport redis-py 8, and make CI actually exercise it by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/427\"\u003echrisguidry/docket#427\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\"\u003ehttps://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.21.0 - Don't Call Me\u003c/h2\u003e\n\u003cp\u003eThis is a performance-tuning release focused on reducing how chatty Docket is with Redis, and folding several separate operations into single pipelines and scripts.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump idna from 3.11 to 3.15 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/chrisguidry/docket/pull/418\"\u003echrisguidry/docket#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pymdown-extensions from 10.21.2 to 10.21.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/chrisguidry/docket/pull/417\"\u003echrisguidry/docket#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the all-dependencies group across 1 directory with 14 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/chrisguidry/docket/pull/416\"\u003echrisguidry/docket#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache Lua scripts at module scope to skip per-call SHA work by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/419\"\u003echrisguidry/docket#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold state PUBLISH into the per-task Lua scripts by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/420\"\u003echrisguidry/docket#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold the rest of the task-completion path into _terminal by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/421\"\u003echrisguidry/docket#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePost-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/422\"\u003echrisguidry/docket#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLock in regression coverage for implicit invariants in the recent Lua refactor by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/423\"\u003echrisguidry/docket#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.0\"\u003ehttps://github.com/chrisguidry/docket/compare/0.20.3...0.21.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/chrisguidry/docket/commit/cfafd7e3d8b4dd20d237b237c2b4ce78dc69ad5b\"\u003e\u003ccode\u003ecfafd7e\u003c/code\u003e\u003c/a\u003e Support redis-py 8, and make CI actually exercise it (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/11ebbcd7731441c0460b00d41bdbaeb5072069bb\"\u003e\u003ccode\u003e11ebbcd\u003c/code\u003e\u003c/a\u003e Lock in regression coverage for implicit invariants in the recent Lua refacto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/bf1fa2afc122968b6a0845e7b7edc5f112c0a79d\"\u003e\u003ccode\u003ebf1fa2a\u003c/code\u003e\u003c/a\u003e Post-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/b82ef829c704d4a102b3e2b11fabf69d118e3673\"\u003e\u003ccode\u003eb82ef82\u003c/code\u003e\u003c/a\u003e Fold the rest of the task-completion path into _terminal (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/1cdb6dfffe8791684f3b0abe94751a54aaa8dc63\"\u003e\u003ccode\u003e1cdb6df\u003c/code\u003e\u003c/a\u003e Fold state PUBLISH into the per-task Lua scripts (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/e95be4a45bdf87cd4c67c9c9a5fd5db83d4c8136\"\u003e\u003ccode\u003ee95be4a\u003c/code\u003e\u003c/a\u003e Cache Lua scripts at module scope to skip per-call SHA work (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/718df97071c73b84ce9b6afcd49e51b75fcbe69f\"\u003e\u003ccode\u003e718df97\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group across 1 directory with 14 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/ea4077df41e2e2451f7767ced4db0aaef1c2d5c2\"\u003e\u003ccode\u003eea4077d\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions from 10.21.2 to 10.21.3 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/6d015281dee243fcbc9e359fdd204b0926704b02\"\u003e\u003ccode\u003e6d01528\u003c/code\u003e\u003c/a\u003e Bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.11.15 to 0.11.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.17\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-28.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a diagnostic for \u003ccode\u003euv add\u003c/code\u003e with standard library modules (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19572\"\u003e#19572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003euv workspace\u003c/code\u003e and its \u003ccode\u003elist\u003c/code\u003e subcommand in help output (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19533\"\u003e#19533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the \u0026quot;403 forbidden\u0026quot; hint to suggest \u003ccode\u003eignore-error-codes\u003c/code\u003e when applicable (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19521\"\u003e#19521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip direct URL lock freshness checks while offline (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19596\"\u003e#19596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eimport-names\u003c/code\u003e and \u003ccode\u003eimport-namespaces\u003c/code\u003e support to \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://peps.python.org/pep-0794/\"\u003ePEP 794\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19380\"\u003e#19380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--no-editable-package\u003c/code\u003e flag to various commands (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19584\"\u003e#19584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer Python version requests from source trees in \u003ccode\u003euv tool\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19577\"\u003e#19577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd module owners to \u003ccode\u003euv workspace metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19122\"\u003e#19122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not allow \u003ccode\u003euv venv --clear\u003c/code\u003e to remove non-virtual environments (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19595\"\u003e#19595\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of large entries in \u003ccode\u003etool.uv.conflicts\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19538\"\u003e#19538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid modifying the parent process' env with \u003ccode\u003e--env-file\u003c/code\u003e in \u003ccode\u003euv run\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19567\"\u003e#19567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix script environment creation for scripts with long filenames (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19539\"\u003e#19539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix transitive Git archive dependencies in lockfiles (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19589\"\u003e#19589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve Git repository URLs in direct URL metadata (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19590\"\u003e#19590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport redirects in \u003ccode\u003e--check-url\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19594\"\u003e#19594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept case-insensitive HTML tags in \u003ccode\u003e--find-links\u003c/code\u003e parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19537\"\u003e#19537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate script metadata blocks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19544\"\u003e#19544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan names like \u0026quot;python3\u0026quot; as script entry points (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19535\"\u003e#19535\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19536\"\u003e#19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate Git LFS artifacts for Git archives (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19592\"\u003e#19592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a relative path when creating symlinks in cache to improve relocatability (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19033\"\u003e#19033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix malformed positional anchors in the CLI reference (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19575\"\u003e#19575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall uv 0.11.17\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/uv/releases/download/0.11.17/uv-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-installer.ps1 | iex\u0026quot;\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/blob/main/CHANGELOG.md\"\u003euv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.17\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-28.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a diagnostic for \u003ccode\u003euv add\u003c/code\u003e with standard library modules (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19572\"\u003e#19572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003euv workspace\u003c/code\u003e and its \u003ccode\u003elist\u003c/code\u003e subcommand in help output (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19533\"\u003e#19533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the \u0026quot;403 forbidden\u0026quot; hint to suggest \u003ccode\u003eignore-error-codes\u003c/code\u003e when applicable (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19521\"\u003e#19521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip direct URL lock freshness checks while offline (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19596\"\u003e#19596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eimport-names\u003c/code\u003e and \u003ccode\u003eimport-namespaces\u003c/code\u003e support to \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://peps.python.org/pep-0794/\"\u003ePEP 794\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19380\"\u003e#19380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--no-editable-package\u003c/code\u003e flag to various commands (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19584\"\u003e#19584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer Python version requests from source trees in \u003ccode\u003euv tool\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19577\"\u003e#19577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd module owners to \u003ccode\u003euv workspace metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19122\"\u003e#19122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not allow \u003ccode\u003euv venv --clear\u003c/code\u003e to remove non-virtual environments (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19595\"\u003e#19595\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of large entries in \u003ccode\u003etool.uv.conflicts\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19538\"\u003e#19538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid modifying the parent process' env with \u003ccode\u003e--env-file\u003c/code\u003e in \u003ccode\u003euv run\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19567\"\u003e#19567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix script environment creation for scripts with long filenames (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19539\"\u003e#19539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix transitive Git archive dependencies in lockfiles (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19589\"\u003e#19589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve Git repository URLs in direct URL metadata (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19590\"\u003e#19590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport redirects in \u003ccode\u003e--check-url\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19594\"\u003e#19594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept case-insensitive HTML tags in \u003ccode\u003e--find-links\u003c/code\u003e parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19537\"\u003e#19537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate script metadata blocks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19544\"\u003e#19544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan names like \u0026quot;python3\u0026quot; as script entry points (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19535\"\u003e#19535\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19536\"\u003e#19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate Git LFS artifacts for Git archives (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19592\"\u003e#19592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a relative path when creating symlinks in cache to improve relocatability (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19033\"\u003e#19033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix malformed positional anchors in the CLI reference (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19575\"\u003e#19575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust hint rendering (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18936\"\u003e#18936\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/uv/commit/a33a629d66753e9722a0040212c004ba66ad04b4\"\u003e\u003ccode\u003ea33a629\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.17 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19599\"\u003e#19599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/7472df8d52db05ea304652133869cccbf6115700\"\u003e\u003ccode\u003e7472df8\u003c/code\u003e\u003c/a\u003e Update conda-incubator/setup-miniconda action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19233\"\u003e#19233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/484ba3905d0225ef1288ac46bc53ac5018596a58\"\u003e\u003ccode\u003e484ba39\u003c/code\u003e\u003c/a\u003e Do not allow \u003ccode\u003euv venv --clear\u003c/code\u003e to remove non-virtual environments (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19595\"\u003e#19595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/71ae411ae1b53ad2a5bef0d7c0f49cfbbc48ba06\"\u003e\u003ccode\u003e71ae411\u003c/code\u003e\u003c/a\u003e Add a diagnostic for \u003ccode\u003euv add\u003c/code\u003e with standard library modules (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19572\"\u003e#19572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/28cb0929095aac0ce097d4b97c3935d4e48b7755\"\u003e\u003ccode\u003e28cb092\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--no-editable-package\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19584\"\u003e#19584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/5a0b932474304d8da37ee169db02c866291dd61f\"\u003e\u003ccode\u003e5a0b932\u003c/code\u003e\u003c/a\u003e Support redirects in \u003ccode\u003e--check-url\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19594\"\u003e#19594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/995b41e850ce0116141f4066e3f93e6d49dc39b9\"\u003e\u003ccode\u003e995b41e\u003c/code\u003e\u003c/a\u003e Encapsulate Git HTTP fetch settings (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19597\"\u003e#19597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/727d2b84f20d6c78e12d4c12f750d973f695e334\"\u003e\u003ccode\u003e727d2b8\u003c/code\u003e\u003c/a\u003e Add module owners to workspace metadata (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19122\"\u003e#19122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/4e25ecad0d7c33e8b00dcf84af54ff54fe30e3e7\"\u003e\u003ccode\u003e4e25eca\u003c/code\u003e\u003c/a\u003e Skip direct URL lock freshness checks while offline (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19596\"\u003e#19596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/da5f6a6967b41423fb2a61bf094adff4e403367c\"\u003e\u003ccode\u003eda5f6a6\u003c/code\u003e\u003c/a\u003e Infer Python version requests from source trees in \u003ccode\u003euv tool\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19\"\u003e#19\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/uv/compare/0.11.15...0.11.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.4.0 to 8.0.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\u003e8.0.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync Cluster PubSub\u003c/h3\u003e\n\u003cp\u003eThis release introduces full \u003cstrong\u003easyncio Cluster PubSub support\u003c/strong\u003e, bringing shard-channel capabilities (\u003ccode\u003eSSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSUNSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSPUBLISH\u003c/code\u003e) to the async \u003ccode\u003eRedisCluster\u003c/code\u003e client. The new \u003ccode\u003eClusterPubSub\u003c/code\u003e class in \u003ccode\u003eredis.asyncio.cluster\u003c/code\u003e automatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance via \u003ccode\u003eRedisCluster.pubsub()\u003c/code\u003e and use \u003ccode\u003essubscribe()\u003c/code\u003e, \u003ccode\u003esunsubscribe()\u003c/code\u003e, and \u003ccode\u003eget_sharded_message()\u003c/code\u003e just as they would with the sync cluster client.\u003c/p\u003e\n\u003ch3\u003eKeyspace and subkey notifications\u003c/h3\u003e\n\u003cp\u003eRedis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes — \u003ccode\u003eKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eClusterKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eAsyncKeyspaceNotifications\u003c/code\u003e, and \u003ccode\u003eAsyncClusterKeyspaceNotifications\u003c/code\u003e — provide a high-level API for keyspace/keyevent subscriptions and subkey notification families: \u003ccode\u003esubkeyspace\u003c/code\u003e, \u003ccode\u003esubkeyevent\u003c/code\u003e, \u003ccode\u003esubkeyspaceitem\u003c/code\u003e, and \u003ccode\u003esubkeyspaceevent\u003c/code\u003e. Convenience methods like \u003ccode\u003esubscribe_keyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_keyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspaceitem()\u003c/code\u003e, and \u003ccode\u003esubscribe_subkeyspaceevent()\u003c/code\u003e simplify common patterns, with channel classes for both key and subkey channels.\u003c/p\u003e\n\u003cp\u003eIn cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync \u003ccode\u003erun_in_thread()\u003c/code\u003e and async \u003ccode\u003elisten()\u003c/code\u003e workflows are supported.\u003c/p\u003e\n\u003ch3\u003eRedis Array commands(\u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003ehttps://redis.io/docs/latest/develop/data-types/arrays/\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eredis-py now supports \u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003eRedis Arrays\u003c/a\u003e, a preview Redis data type for sparse, index-addressable sequences of strings. New \u003ccode\u003eAR*\u003c/code\u003e command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, including \u003ccode\u003eARGET\u003c/code\u003e, \u003ccode\u003eARSET\u003c/code\u003e, \u003ccode\u003eARMGET\u003c/code\u003e, \u003ccode\u003eARMSET\u003c/code\u003e, \u003ccode\u003eARSCAN\u003c/code\u003e, \u003ccode\u003eARGREP\u003c/code\u003e, \u003ccode\u003eARRING\u003c/code\u003e, and \u003ccode\u003eAROP\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eType Hints Improvements (breaking changes)\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003e@overload\u003c/code\u003e pattern has been applied systematically across \u003cstrong\u003ecore commands\u003c/strong\u003e (\u003ccode\u003ecore.py\u003c/code\u003e), \u003cstrong\u003eVectorSet commands\u003c/strong\u003e, and \u003cstrong\u003emodule commands\u003c/strong\u003e (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combined \u003ccode\u003eResponseT\u003c/code\u003e (i.e., \u003ccode\u003eUnion[Awaitable[Any], Any]\u003c/code\u003e), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g., \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003elist[str]\u003c/code\u003e) while async clients see \u003ccode\u003eAwaitable[...]\u003c/code\u003e wrappers. This is a \u003cstrong\u003ebreaking change for type-checking only\u003c/strong\u003e—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types, \u003ccode\u003eSyncClientProtocol\u003c/code\u003e and \u003ccode\u003eAsyncClientProtocol\u003c/code\u003e, are used in overload signatures to enable this distinction.\u003c/p\u003e\n\u003ch3\u003eRESP3 by default with opt-in unified responses\u003c/h3\u003e\n\u003cp\u003eredis-py 8.0.0 now uses RESP3 on the wire by default while preserving legacy RESP2-compatible Python response shapes for existing applications (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4052\"\u003e#4052\u003c/a\u003e). Protocol-independent unified response shapes are available by setting \u003ccode\u003elegacy_responses=False\u003c/code\u003e, so affected commands return the same Python structure with RESP2 or RESP3.\u003c/p\u003e\n\u003cp\u003eUse \u003ccode\u003eprotocol=2\u003c/code\u003e to force RESP2 on the wire, \u003ccode\u003eprotocol=3\u003c/code\u003e to opt into native RESP3 response shapes, or \u003ccode\u003elegacy_responses=False\u003c/code\u003e to migrate to unified responses. See \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\u003c/code\u003e\u003c/a\u003e for the affected commands and migration details.\u003c/p\u003e\n\u003ch3\u003eConnection and retry defaults\u003c/h3\u003e\n\u003cp\u003eDefault connection settings were updated: \u003ccode\u003esocket_timeout\u003c/code\u003e and \u003ccode\u003esocket_connect_timeout\u003c/code\u003e now default to 5 seconds, TCP keepalive is enabled by default, socket reads use a 32 KB buffer, connection pools default to \u003ccode\u003emax_connections=100\u003c/code\u003e, and retry defaults now use 10 attempts with exponential jitter backoff.\u003c/p\u003e\n\u003cp\u003eNote: \u003ccode\u003esocket_timeout\u003c/code\u003e can affect blocking commands such as \u003ccode\u003eBLPOP\u003c/code\u003e/\u003ccode\u003eBRPOP\u003c/code\u003e; if a command blocks longer than the client socket timeout, it may raise \u003ccode\u003eTimeoutError\u003c/code\u003e before the command timeout elapses (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/2807\"\u003e#2807\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for new array commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4055\"\u003e#4055\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Cluster PubSub in asyncio (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3736\"\u003e#3736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Redis Keyspace Notifications Support for Redis Cluster (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd random load balancing strategy which allows for use of the primary (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4027\"\u003e#4027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd FPHA (floating-point homogeneous array) arg support to JSON.SET (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4011\"\u003e#4011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom Claude command + XNACK command support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4030\"\u003e#4030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding Time Series Multiple Aggregators support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new COUNT aggregator for some sorted set commands - ZINTER, ZINTERSTORE, ZUNION, ZUNIONSTORE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4034\"\u003e#4034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new INCREX command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4067\"\u003e#4067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for PubSub subscriptions with binary channel names and handlers (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4068\"\u003e#4068\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/redis/redis-py/commit/733f80ec633d6a772a6e1ccb1c0cca6fc1afb4b6\"\u003e\u003ccode\u003e733f80e\u003c/code\u003e\u003c/a\u003e Updates in default connection and retry settings (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4082\"\u003e#4082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a68a16c296591e902d0c749d31781550048f280f\"\u003e\u003ccode\u003ea68a16c\u003c/code\u003e\u003c/a\u003e Updating Redis supported versions in README.md and lib version to 8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43a41d3d2956aa69eb0041655067ffaaaf23c6c3\"\u003e\u003ccode\u003e43a41d3\u003c/code\u003e\u003c/a\u003e Updating INCREX command arg - SATURATE now controls overflow behaviour (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/1496deba3801605cb123cb1b67adda50e85cd1e5\"\u003e\u003ccode\u003e1496deb\u003c/code\u003e\u003c/a\u003e Preserve explicit None for client metadata config (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4081\"\u003e#4081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/57dc08c550f82086afeaa68a7cd7e5df356f7217\"\u003e\u003ccode\u003e57dc08c\u003c/code\u003e\u003c/a\u003e Avoid zero-timeout async reads in hiredis connections readiness checks and re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd54ddd25aa307dc7f05bc0e4387cfc294c0a4c8\"\u003e\u003ccode\u003ecd54ddd\u003c/code\u003e\u003c/a\u003e fix(typing): correct type annotation for XReadResponse (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4046\"\u003e#4046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ab2d41fcf0f9477ac788822d7c430004076a27f2\"\u003e\u003ccode\u003eab2d41f\u003c/code\u003e\u003c/a\u003e Add support for PubSub subscriptions with binary channel names and handlers (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ef24dc99b6f2aa9507f19aa4ce4be37745ed6c77\"\u003e\u003ccode\u003eef24dc9\u003c/code\u003e\u003c/a\u003e Randomize cluster startup node order during topology refresh (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4060\"\u003e#4060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b604015aeb5abce4b576f9dc54ffe30a3f1ba8c6\"\u003e\u003ccode\u003eb604015\u003c/code\u003e\u003c/a\u003e Add CLAUDE.md and /sync-claude-md skill for managing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4066\"\u003e#4066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b8b4fcc9986fbc1f188cc6a355d12eec814ee90\"\u003e\u003ccode\u003e2b8b4fc\u003c/code\u003e\u003c/a\u003e Fix flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4071\"\u003e#4071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.4.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `virtualenv` from 21.3.3 to 21.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/releases\"\u003evirtualenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(create): debug build venvlauncher lookup on Windows 3.13+ by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3151\"\u003epypa/virtualenv#3151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/21.4.0...21.4.1\"\u003ehttps://github.com/pypa/virtualenv/compare/21.4.0...21.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e21.4.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Mermaid flowchart rendering by \u003ca href=\"https://github.com/Herrtian\"\u003e\u003ccode\u003e@​Herrtian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3147\"\u003epypa/virtualenv#3147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ refactor(create): remove dead code and document droppable paths by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3149\"\u003epypa/virtualenv#3149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(create): support Windows debug builds and remove dead code by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3150\"\u003epypa/virtualenv#3150\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/Herrtian\"\u003e\u003ccode\u003e@​Herrtian\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3147\"\u003epypa/virtualenv#3147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/21.3.3...21.4.0\"\u003ehttps://github.com/pypa/virtualenv/compare/21.3.3...21.4.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/pypa/virtualenv/blob/main/docs/changelog.rst\"\u003evirtualenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBugfixes - 21.4.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Windows debug build \u003ccode\u003evenvlauncher_d.exe\u003c/code\u003e substitution never triggering because \u003ccode\u003eexecutables()\u003c/code\u003e compared the\nsource executable name instead of the target name, and fix \u003ccode\u003eAttributeError\u003c/code\u003e on \u003ccode\u003edebug_build\u003c/code\u003e attribute for\ninterpreter info objects missing the field - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3151\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev21.4.0 (2026-05-28)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 21.4.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove dead code targeting Python versions below the supported target range (PyPy 3.6, deprecated importlib APIs) and\nsimplify the runtime import hook in \u003ccode\u003e_virtualenv.py\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3149\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Windows debug builds (\u003ccode\u003epython_d.exe\u003c/code\u003e, \u003ccode\u003evenvlauncher_d.exe\u003c/code\u003e) matching CPython venv behavior, remove dead\n\u003ccode\u003e__SCRIPT_DIR__\u003c/code\u003e replacement and \u003ccode\u003ehas_shim\u003c/code\u003e version guard, drop unreachable Python 3.7 branch from\n\u003ccode\u003epyvenv_launch_patch_active\u003c/code\u003e, and fix wheel deprecation message to say \u003ccode\u003e\u0026gt;= 3.9\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev21.3.3 (2026-05-13)\u003c/p\u003e\n\u003chr /\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/pypa/virtualenv/commit/e88f194c574fba787a9f44a0568042974d45a539\"\u003e\u003ccode\u003ee88f194\u003c/code\u003e\u003c/a\u003e release 21.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/6a2d79cd8077035a8a9d08b8501975eead13b496\"\u003e\u003ccode\u003e6a2d79c\u003c/code\u003e\u003c/a\u003e 🐛 fix(create): debug build venvlauncher lookup on Windows 3.13+ (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/3151\"\u003e#3151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/30bcf62a65d262b85f3272a7f9b91397f712a13b\"\u003e\u003ccode\u003e30bcf62\u003c/code\u003e\u003c/a\u003e release 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/61434984154e4474c478301e433071efd880ad8c\"\u003e\u003ccode\u003e6143498\u003c/code\u003e\u003c/a\u003e ✨ feat(create): support Windows debug builds and remove dead code (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/3150\"\u003e#3150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/ceaf88f8736c253ca71d155bb08b8475deebda02\"\u003e\u003ccode\u003eceaf88f\u003c/code\u003e\u003c/a\u003e ♻️ refactor(create): remove dead code and document droppable paths (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/3149\"\u003e#3149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/Beaconchain-us/prefect/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaconchain-us%2Fprefect/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"4545740541","node_id":"PR_kwDODBvuXM7ggOhg","number":4211,"state":"open","title":"build(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3 in the python-dependencies group","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-05-29T04:46:28.000Z","updated_at":"2026-05-29T04:53:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":"the python-dependencies group","ecosystem":"pip"},"body":"Bumps the python-dependencies group with 1 update: [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed).\n\nUpdates `pytest-codspeed` from 5.0.2 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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 \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/schemathesis/schemathesis/pull/4211","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/schemathesis%2Fschemathesis/issues/4211","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4211/packages"},{"uuid":"4521373238","node_id":"PR_kwDOJDpYW87fQ652","number":231,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","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-05-26T04:31:16.000Z","updated_at":"2026-05-26T04:32:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/ulid-transform/pull/231","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fulid-transform/issues/231","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/231/packages"},{"uuid":"4520496704","node_id":"PR_kwDOJSb29M7fODrE","number":135,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","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-05-26T01:08:48.000Z","updated_at":"2026-05-26T01:09:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/fnv-hash-fast/pull/135","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Ffnv-hash-fast/issues/135","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/135/packages"},{"uuid":"4519252731","node_id":"PR_kwDOH945bc7fKA7h","number":722,"state":"closed","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T20:08:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T20:03:31.000Z","updated_at":"2026-05-25T20:09:01.000Z","time_to_close":328,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/dbus-fast/pull/722","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fdbus-fast/issues/722","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/722/packages"},{"uuid":"4515009670","node_id":"PR_kwDOHpWZ4M7e8ShZ","number":281,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","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-05-25T07:08:15.000Z","updated_at":"2026-05-25T07:09:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/bluetooth-data-tools/pull/281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fbluetooth-data-tools/issues/281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/281/packages"},{"uuid":"4513413081","node_id":"PR_kwDOK0-cR87e3PMJ","number":494,"state":"closed","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T00:18:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T00:15:55.000Z","updated_at":"2026-05-25T00:19:30.000Z","time_to_close":179,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/habluetooth/pull/494","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fhabluetooth/issues/494","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/494/packages"},{"uuid":"4512532378","node_id":"PR_kwDOSXLGM87e0lKU","number":11,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-31T04:32:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-24T18:25:58.000Z","updated_at":"2026-05-31T04:32:19.000Z","time_to_close":554779,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":6,"packages":[{"name":"click","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uv","old_version":"0.11.15","new_version":"0.11.16","repository_url":"https://github.com/astral-sh/uv"},{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.48.0` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.15` | `0.11.16` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `5.0.2` | `5.0.3` |\n\n\nUpdates `click` from 8.4.0 to 8.4.1\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.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 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.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32?closed=1\"\u003ehttps://github.com/pallets/click/milestone/32?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\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.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. :issue:\u003ccode\u003e3458\u003c/code\u003e :issue:\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. :issue:\u003ccode\u003e3277\u003c/code\u003e :pr:\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion\nresult. :issue:\u003ccode\u003e3015\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. :issue:\u003ccode\u003e3487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. :issue:\u003ccode\u003e3449\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/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e change log and doc fixes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e Fix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e fix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e fix I/O operation on closed file error with CliRunner and echo_via_pager (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e pager doesn't close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e Handle empty bytes in echo (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e handle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager callbacks (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e Document ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.0...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.3 to 7.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\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/tkem/cachetools/commit/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e Release v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e Update build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e Add threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e Run threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 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\u003c!-- 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/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.136.1...0.136.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.47.0 to 0.48.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.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults 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/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\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/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\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.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.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.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/73e84e58d7f6b8b3dfd8a9e3e42d716862250f33\"\u003e\u003ccode\u003e73e84e5\u003c/code\u003e\u003c/a\u003e Version 0.48.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45ea11690b4a62fa6df339d2b6ee3b8545a418e0\"\u003e\u003ccode\u003e45ea116\u003c/code\u003e\u003c/a\u003e Ignore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dd4394c3cbfd9f27a696a7b08047149690058158\"\u003e\u003ccode\u003edd4394c\u003c/code\u003e\u003c/a\u003e chore(deps): bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/abe07818a191cd036dc3824d802d052207e01c7e\"\u003e\u003ccode\u003eabe0781\u003c/code\u003e\u003c/a\u003e Default \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.11.15 to 0.11.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust hint rendering (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling reading the system config with \u003ccode\u003eUV_NO_SYSTEM_CONFIG\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19476\"\u003e#19476\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow environment variables that take a list to be empty (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19503\"\u003e#19503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure that incompatible wheel hints do not leak secrets (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19504\"\u003e#19504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject unsafe entry points in \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19495\"\u003e#19495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict delimiters in entry point parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19471\"\u003e#19471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euv-netrc: fix multi-word no-space comment lines causing parse errors (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19494\"\u003e#19494\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument and test relative exclude-newer support for uv pip (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19475\"\u003e#19475\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall uv 0.11.16\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/uv/releases/download/0.11.16/uv-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/uv/releases/download/0.11.16/uv-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload uv 0.11.16\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.16/uv-aarch64-apple-darwin.tar.gz\"\u003euv-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.16/uv-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/uv/blob/main/CHANGELOG.md\"\u003euv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust hint rendering (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling reading the system config with \u003ccode\u003eUV_NO_SYSTEM_CONFIG\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19476\"\u003e#19476\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow environment variables that take a list to be empty (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19503\"\u003e#19503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure that incompatible wheel hints do not leak secrets (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19504\"\u003e#19504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject unsafe entry points in \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19495\"\u003e#19495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict delimiters in entry point parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19471\"\u003e#19471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euv-netrc: fix multi-word no-space comment lines causing parse errors (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19494\"\u003e#19494\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument and test relative exclude-newer support for uv pip (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19475\"\u003e#19475\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/astral-sh/uv/commit/135a3636789bb6886e0a7876f58cb4dbb270ba6d\"\u003e\u003ccode\u003e135a363\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.16 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19522\"\u003e#19522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/3b5f99412c7050f1050c09d2b7a48f82c333adfa\"\u003e\u003ccode\u003e3b5f994\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003euv lock\u003c/code\u003e check to CI (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19524\"\u003e#19524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/4ffb506acf2b3d4dfd9a343a3cee53abe63a4de7\"\u003e\u003ccode\u003e4ffb506\u003c/code\u003e\u003c/a\u003e Improve crates.io new crate error message (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19523\"\u003e#19523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/51ba989e678ba1558ed48e1ea3e66d01a6dc30b3\"\u003e\u003ccode\u003e51ba989\u003c/code\u003e\u003c/a\u003e Add support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/c07a6efb380b2ecd39161194aa7f3bb5d3f967ca\"\u003e\u003ccode\u003ec07a6ef\u003c/code\u003e\u003c/a\u003e Reject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/58a6734719d19da5335a5985843435745ff93320\"\u003e\u003ccode\u003e58a6734\u003c/code\u003e\u003c/a\u003e Allow environment variables that take a list to be empty (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19503\"\u003e#19503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/c1477e2b0f9e0ef510554ebfdf76aa68d477dfe6\"\u003e\u003ccode\u003ec1477e2\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eUV_NO_SYSTEM_CONFIG\u003c/code\u003e in tests to avoid reading machine-global config (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/4648a0b9e67c2abfd5aa1404d2daeac800b987f5\"\u003e\u003ccode\u003e4648a0b\u003c/code\u003e\u003c/a\u003e uv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/e2375abfe10d0e2326bf29c5f425b38f71ebf7db\"\u003e\u003ccode\u003ee2375ab\u003c/code\u003e\u003c/a\u003e Test \u003ccode\u003ecreate_junction\u003c/code\u003e changes from \u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19402\"\u003e#19402\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19487\"\u003e#19487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/547bf2f9e7f4ff8b3e8a974e0cad3159ac04bb8c\"\u003e\u003ccode\u003e547bf2f\u003c/code\u003e\u003c/a\u003e Avoid unwrapping from \u003ccode\u003eOnceMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19510\"\u003e#19510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/uv/compare/0.11.15...0.11.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-codspeed` from 5.0.2 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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/Beaconchain-us/prefect/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaconchain-us%2Fprefect/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"4505777168","node_id":"PR_kwDOR_MN387egP-Q","number":122,"state":"closed","title":"Bump pytest-codspeed from 5.0.2 to 5.0.3","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-22T21:48:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T21:47:53.000Z","updated_at":"2026-05-22T21:48:13.000Z","time_to_close":11,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"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\nBumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/mangoRyw/aiohttp-mryw-copy/pull/122","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mangoRyw%2Faiohttp-mryw-copy/issues/122","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/122/packages"},{"uuid":"4505762565","node_id":"PR_kwDONSrOpM7egM9I","number":85,"state":"open","title":"Bump pytest-codspeed from 4.3.0 to 5.0.3","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-05-22T21:44:30.000Z","updated_at":"2026-05-22T21:44:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"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\nBumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.3.0 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: skip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003eCodSpeedHQ/pytest-codspeed#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: enable free-threaded wheels in cibuildwheel by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003eCodSpeedHQ/pytest-codspeed#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eMacOS walltime profiling is now available with the \u003ca href=\"https://github.com/CodSpeedHQ/codspeed/releases/tag/v4.16.1\"\u003ecodspeed cli v4.16.1\u003c/a\u003e and above.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epytest-codspeed\u003c/code\u003e can now be used in free threaded mode. This has been tested with 3.14t and 3.15t.\nFor this, we have dropped usage of \u003ccode\u003ecffi\u003c/code\u003e in favor of the native extension support.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: bump instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003eCodSpeedHQ/pytest-codspeed#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove CFFI in favor of native extension to support free-threaded mode by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003eCodSpeedHQ/pytest-codspeed#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(hooks): declare native extension free-thread safe by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003eCodSpeedHQ/pytest-codspeed#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: use instrument-hook markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003eCodSpeedHQ/pytest-codspeed#118\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.2] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003e#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.1] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e💼 Other\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003e#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.0] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare native extension free-thread safe (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/120\"\u003e#120\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003e#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove cffi in favor of native extension by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚡ Performance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBind callgrind start/stop directly to avoid extra frame by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003e#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore common compilation warnings for instrument-hooks by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003e#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse unsigned bash in the macos test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pinned uv version to 0.11.14 by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.15 and 3.15t to test matrix by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14.t in test suite by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/119\"\u003e#119\u003c/a\u003e) by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003e#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/fc33d2098d7a1296b320b30e9ed14c270ab714b8\"\u003e\u003ccode\u003efc33d20\u003c/code\u003e\u003c/a\u003e Release v5.0.2 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/3bbabe482458518555fa9939902410ae8cf1baa8\"\u003e\u003ccode\u003e3bbabe4\u003c/code\u003e\u003c/a\u003e feat: skip Python runtime objects in callgrind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d4d9dc6ca011bbf6d21640e7c370d3d181f944cf\"\u003e\u003ccode\u003ed4d9dc6\u003c/code\u003e\u003c/a\u003e Release v5.0.1 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ad709a5904ea756c577dcfa91caff67c3cf8777a\"\u003e\u003ccode\u003ead709a5\u003c/code\u003e\u003c/a\u003e build: enable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/080d620ba846adaf6e1b70b96e525e773438034b\"\u003e\u003ccode\u003e080d620\u003c/code\u003e\u003c/a\u003e Release v5.0.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/befdebfba2cdebddd84d6377f8d14d72e0ad4086\"\u003e\u003ccode\u003ebefdebf\u003c/code\u003e\u003c/a\u003e chore: ignore common compilation warnings for instrument-hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ee98055fb69fba4cc62c3822ef3df4c7002352d3\"\u003e\u003ccode\u003eee98055\u003c/code\u003e\u003c/a\u003e chore: use unsigned bash in the macos test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/5a205c8822ca16db400ef25a5d8b51a65c875669\"\u003e\u003ccode\u003e5a205c8\u003c/code\u003e\u003c/a\u003e feat: use instrument_hooks markers in walltime\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.3.0\u0026new-version=5.0.3)](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/themartiancompany/propcache/pull/85","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/themartiancompany%2Fpropcache/issues/85","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/85/packages"},{"uuid":"4500080464","node_id":"PR_kwDOLzxzKM7eNvd4","number":342,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 45 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["matmair"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T05:26:07.000Z","updated_at":"2026-05-22T05:28:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":45,"packages":[{"name":"bleach","old_version":"4.1.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"blessed","old_version":"1.38.0","new_version":"1.39.0","repository_url":"https://github.com/jquast/blessed"},{"name":"boto3","old_version":"1.42.96","new_version":"1.43.8","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.96","new_version":"1.43.8","repository_url":"https://github.com/boto/botocore"},{"name":"cryptography","old_version":"47.0.0","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"django","old_version":"5.2.13","new_version":"6.0.5","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.14.3","new_version":"65.16.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-otp","old_version":"1.3.0","new_version":"1.7.0","repository_url":"https://github.com/django-otp/django-otp"},{"name":"django-q2","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/GDay/django-q2"},{"name":"dulwich","old_version":"1.2.0","new_version":"1.2.1","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fonttools","old_version":"4.62.1","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"googleapis-common-protos","old_version":"1.74.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"gunicorn","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"icalendar","old_version":"7.0.3","new_version":"7.1.0","repository_url":"https://github.com/collective/icalendar"},{"name":"idna","old_version":"3.13","new_version":"3.15","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":"nh3","old_version":"0.3.4","new_version":"0.3.5","repository_url":"https://github.com/messense/nh3"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"paramiko","old_version":"4.0.0","new_version":"5.0.0","repository_url":"https://github.com/paramiko/paramiko"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.34.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pypdf","old_version":"6.10.2","new_version":"6.11.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"s3transfer","old_version":"0.16.1","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sentry-sdk","old_version":"2.58.0","new_version":"2.60.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-stubs","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"django-stubs-ext","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"pip","old_version":"26.1","new_version":"26.1.1","repository_url":"https://github.com/pypa/pip"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"python-discovery","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/tox-dev/python-discovery"},{"name":"ty","old_version":"0.0.1a21","new_version":"0.0.35","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-psycopg2","old_version":"2.9.21.20260422","new_version":"2.9.21.20260509","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20260408","new_version":"6.0.12.20260510","repository_url":"https://github.com/python/typeshed"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.3","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 45 updates in the /src/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |\n| [blessed](https://github.com/jquast/blessed) | `1.38.0` | `1.39.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.96` | `1.43.8` |\n| [botocore](https://github.com/boto/botocore) | `1.42.96` | `1.43.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `47.0.0` | `48.0.0` |\n| [django](https://github.com/django/django) | `5.2.13` | `6.0.5` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.14.3` | `65.16.1` |\n| [django-otp](https://github.com/django-otp/django-otp) | `1.3.0` | `1.7.0` |\n| [django-q2](https://github.com/GDay/django-q2) | `1.9.0` | `1.10.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `1.2.0` | `1.2.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.62.1` | `4.63.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.74.0` | `1.75.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.3.0` | `26.0.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.0.3` | `7.1.0` |\n| [idna](https://github.com/kjd/idna) | `3.13` | `3.15` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.4` | `0.3.5` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [paramiko](https://github.com/paramiko/paramiko) | `4.0.0` | `5.0.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.10.2` | `6.11.0` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.1` | `0.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.58.0` | `2.60.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.6.0` | `0.7.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.3` | `6.0.4` |\n| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.0.3` | `6.0.4` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [pip](https://github.com/pypa/pip) | `26.1` | `26.1.1` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `5.0.2` |\n| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.2.2` | `1.3.1` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a21` | `0.0.35` |\n| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260422` | `2.9.21.20260509` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260408` | `6.0.12.20260510` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.3` |\n\n\nUpdates `bleach` from 4.1.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blessed` from 1.38.0 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/jquast/blessed/releases\"\u003eblessed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.17.9: Initial support for Python 3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: Now imports on 3.10+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.15.0: Disable various integration tests, support python 3.7\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e1.14.0: bugfix term.wrap for text containing newlines\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: term.wrap misbehaved for text containing newlines, \u003ca href=\"https://redirect.github.com/jquast/blessed/issues/74\"\u003e#74\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.13.0: new Terminal.split_seqs() function, speed enhancement\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eenhancement: method \u003ccode\u003eTerminal.split_seqs\u003c/code\u003e introduced, and 4x cost reduction in related sequence-aware functions, \u003ca href=\"https://redirect.github.com/jquast/blessed/issues/29\"\u003e#29\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003edeprecated: function \u003ccode\u003eblessed.sequences.measure_length\u003c/code\u003e superseded by \u003ccode\u003eblessed.sequences.iter_parse\u003c/code\u003e if necessary.\u003c/li\u003e\n\u003cli\u003edeprecated: warnings about \u0026quot;binary-packed capabilities\u0026quot; are no longer emitted on strange terminal types, making best effort.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0: add Terminal.get_location() method\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eenhancement: method Terminal.get_location\u003ccode\u003ereturns the\u003c/code\u003e(row, col)`` position of the cursor at the time of call for attached terminal.\u003c/li\u003e\n\u003cli\u003eenhancement: a keyboard now detected as \u003cem\u003estdin\u003c/em\u003e when \u003ccode\u003estream\u003c/code\u003e is \u003ccode\u003esys.stderr\u003c/code\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/jquast/blessed/blob/master/docs/history.rst\"\u003eblessed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. py:currentmodule:: blessed.terminal\u003c/p\u003e\n\u003ch1\u003eVersion History\u003c/h1\u003e\n\u003cp\u003e1.42\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: regression in :meth:\u003ccode\u003e~.Terminal.cbreak\u003c/code\u003e and :meth:\u003ccode\u003e~.Terminal.raw\u003c/code\u003e were not thread-safe\nbroken in versions 1.40 and 1.41, remove signal ignore of SIGTTOU :ghissue:\u003ccode\u003e380\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.41\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: :meth:\u003ccode\u003e~.Terminal.get_location\u003c/code\u003e broken in 1.40, returned a generator instead of a tuple.\n:ghissue:\u003ccode\u003e378\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.40\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eimproved: jinxed_ is \u003cstrong\u003enow required on all platforms\u003c/strong\u003e, providing a curses-free and\n\u003ccode\u003esingleton-free \u0026lt;https://jinxed.readthedocs.io/en/stable/capabilities.html#singleton-free\u0026gt;\u003c/code\u003e_\nimplementation of the subset of curses_ used by blessed.  The jinxed_ 1.5.0 release provides a\nterminal \u003ccode\u003ecapability database \u0026lt;https://jinxed.readthedocs.io/en/stable/capabilities.html#database\u0026gt;\u003c/code\u003e of 45 terminals and their\ncommon aliases.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eimproved: Class initialization of :class:\u003ccode\u003e~.Terminal()\u003c/code\u003e now uses \u003ccode\u003eXTGETTCAP\u003c/code\u003e_ to determine\npreferred terminal name \u003ccode\u003eTN\u003c/code\u003e, 24-bit color support \u003ccode\u003eRGB\u003c/code\u003e, number of colors \u003ccode\u003eCo\u003c/code\u003e, \u003ccode\u003eitalic\u003c/code\u003e,\nand \u003ccode\u003eblink\u003c/code\u003e capabilities.\u003c/p\u003e\n\u003cp\u003eThis improves detection of Terminal \u003ccode\u003ekind\u003c/code\u003e and \u003ccode\u003enumber_of_colors\u003c/code\u003e over protocols like serial\nthat cannot forward any environment variables or ssh that do not forward \u003ccode\u003eCOLORTERM\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eintroduced: A :exc:\u003ccode\u003eUserWarning\u003c/code\u003e is emitted when :meth:\u003ccode\u003e~.Terminal.__getattr__\u003c/code\u003e resolves an\nunknown terminal capability name, helping developers catch typos like \u003ccode\u003eterm.bld\u003c/code\u003e\n(missing \u003ccode\u003ebold\u003c/code\u003e).  The warning can be suppressed by setting the environment variable\n\u003ccode\u003eBLESSED_NOWARN_UNKNOWN_CAPS\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebugfix: Fixed internal typo \u003ccode\u003esusimpleript\u003c/code\u003e to the correct terminfo name \u003ccode\u003essubm\u003c/code\u003e for the\n\u003ccode\u003eenter_susimpleript_mode\u003c/code\u003e capability.  This was previously masked by curses_ returning\nan empty string for unknown capabilities.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.39\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eintroduced: :meth:\u003ccode\u003e~.Terminal.progress_bar\u003c/code\u003e for \u003ccode\u003eOSC 9;4 sequence \u0026lt;https://ghostty.org/docs/vt/osc/conemu#change-progress-state-(osc-94)\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eintroduced: :meth:\u003ccode\u003e~.Terminal.text_sized\u003c/code\u003e -- wrap text in Kitty text sizing protocol (OSC 66)\nescape sequences, with graceful fallback to plain text when the terminal does not support\nthe protocol.\u003c/li\u003e\n\u003cli\u003eintroduced: :class:\u003ccode\u003e~.Keystroke\u003c/code\u003e of name \u003ccode\u003eCPR_RESPONSE\u003c/code\u003e for asynchronous capture of Cursor\nPosition Report responses via :meth:\u003ccode\u003e~.Terminal.inkey\u003c/code\u003e.  New argument\n\u003ccode\u003ecapture_cpr=True\u003c/code\u003e resolves the legacy F3 key ambiguity and matches against\n\u003ccode\u003eCPR_RESPONSE\u003c/code\u003e.  New properties :attr:\u003ccode\u003e~.Keystroke.cpr_yx\u003c/code\u003e and :attr:\u003ccode\u003e~.Keystroke.cpr_xy\u003c/code\u003e\nreturn the decoded cursor coordinates.  :ghpull:\u003ccode\u003e369\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eimproved: :meth:\u003ccode\u003e~.Terminal.inkey\u003c/code\u003e raises :exc:\u003ccode\u003eEOFError\u003c/code\u003e when keyboard fd is at EOF, rather\nthan returning an empty :class:\u003ccode\u003e~.Keystroke\u003c/code\u003e.  :ghpull:\u003ccode\u003e371\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eimproved: :meth:\u003ccode\u003e~.Terminal.ljust\u003c/code\u003e, :meth:\u003ccode\u003e~.Terminal.rjust\u003c/code\u003e, and :meth:\u003ccode\u003e~.Terminal.center\u003c/code\u003e\nnow measure text containing hyperlinks, Kitty text sizing protocol sequences, and overtyping\n(backspace/cursor-left with painter's algorithm), introduced by wcwidth_ 0.7.0.\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/jquast/blessed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.96 to 1.43.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7a82579873d86998d560b8d06b3564c743918cd8\"\u003e\u003ccode\u003e7a82579\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.8'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/06a1d63a58620d394cc26a5e8582ed67eed3cb62\"\u003e\u003ccode\u003e06a1d63\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2b6e7bd9d0d24c20f02df91f161ef2214fb53628\"\u003e\u003ccode\u003e2b6e7bd\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/e6aee5dccd2169966814e328eaebdd14b742a0e2\"\u003e\u003ccode\u003ee6aee5d\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/05566d2cd7e3d191a37a663c842eb849418ae7e9\"\u003e\u003ccode\u003e05566d2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/37e8136684e7107a6f7343770873a3630d347731\"\u003e\u003ccode\u003e37e8136\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4418d43f69ee005bf066dc5401b7cda83458c750\"\u003e\u003ccode\u003e4418d43\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5e2df6190560507ab8ff05b4ea7712d0c4bfaf48\"\u003e\u003ccode\u003e5e2df61\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4787\"\u003e#4787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/81a86c9b8923634ee3e9f887c3f7f5e1e312d693\"\u003e\u003ccode\u003e81a86c9\u003c/code\u003e\u003c/a\u003e Add CI for 3.14t (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4786\"\u003e#4786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f2ccf9f3738028afa9d5a6545e52f8520a31afe1\"\u003e\u003ccode\u003ef2ccf9f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.6'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.96...1.43.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.96 to 1.43.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/bd1fb2372c4cecbc93a44be838bb4a38fd23c3ee\"\u003e\u003ccode\u003ebd1fb23\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.8'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d15b1246894c2be8ccaa8084abff4b6be9269f54\"\u003e\u003ccode\u003ed15b124\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b9f0f7fc6f0dc0541b14d8aadec4d92c64dc585f\"\u003e\u003ccode\u003eb9f0f7f\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ec174c1f3b8580736cbd783c9f79ed70cf9eb4c7\"\u003e\u003ccode\u003eec174c1\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/74501ceccf44a7def602007d2a870a17b7b742ec\"\u003e\u003ccode\u003e74501ce\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d6831a55afbdfa2dc51314e73997ce89dc533836\"\u003e\u003ccode\u003ed6831a5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0e63dbed5a6270383200219af4a55e41f08ae72d\"\u003e\u003ccode\u003e0e63dbe\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/840e09fa3d9c0bd4b84601bdd1bb34e1ea2beb57\"\u003e\u003ccode\u003e840e09f\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/8228777f8858256515a6875366425acdc74b1c41\"\u003e\u003ccode\u003e8228777\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b63fa4bfc0587ca55a8684d18a82b86904ab234e\"\u003e\u003ccode\u003eb63fa4b\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.96...1.43.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 47.0.0 to 48.0.0\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\u003e48.0.0 - 2026-05-04\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **BACKWARDS INCOMPATIBLE:** Support for Python 3.8 has been removed.\n  ``cryptography`` now requires Python 3.9 or later.\n* **BACKWARDS INCOMPATIBLE:** Loading an X.509 CRL whose inner\n  ``TBSCertList.signature`` algorithm does not match the outer\n  ``signatureAlgorithm`` now raises ``ValueError``. Previously, such CRLs\n  were parsed successfully and only rejected during signature validation.\n* Added support for :doc:`/hazmat/primitives/asymmetric/mlkem` and\n  :doc:`/hazmat/primitives/asymmetric/mldsa` when using OpenSSL 3.5.0 or\n  later, in addition to the existing AWS-LC and BoringSSL support. This means\n  post-quantum algorithms are now available to users of our wheels.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Going forward, we do not guarantee that all functionality\u003cbr /\u003e\nin \u003ccode\u003ecryptography\u003c/code\u003e will be available when building against\u003cbr /\u003e\nOpenSSL. See :doc:\u003ccode\u003e/statements/state-of-openssl\u003c/code\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v47-0-0:\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/8e03e30e3aae01632a697e903e3593c924f0139d\"\u003e\u003ccode\u003e8e03e30\u003c/code\u003e\u003c/a\u003e bump for 48.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14796\"\u003e#14796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71\"\u003e\u003ccode\u003e295e0d2\u003c/code\u003e\u003c/a\u003e Add AGENTS.md with CLAUDE.md symlink (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14794\"\u003e#14794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8\"\u003e\u003ccode\u003e104a2de\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926\"\u003e\u003ccode\u003e67ec1e5\u003c/code\u003e\u003c/a\u003e call check_length early on AesSiv::encrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14792\"\u003e#14792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26\"\u003e\u003ccode\u003eb2da57a\u003c/code\u003e\u003c/a\u003e changelog for mldsa/mlkem for openssl (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14791\"\u003e#14791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0\"\u003e\u003ccode\u003e3cf44ad\u003c/code\u003e\u003c/a\u003e ML-KEM OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14781\"\u003e#14781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83\"\u003e\u003ccode\u003e2e31639\u003c/code\u003e\u003c/a\u003e ML-DSA OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14773\"\u003e#14773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3\"\u003e\u003ccode\u003e5affe5a\u003c/code\u003e\u003c/a\u003e fix rust nightly clippy (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14790\"\u003e#14790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec\"\u003e\u003ccode\u003e2e73ca4\u003c/code\u003e\u003c/a\u003e bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/82ebd3b9f49d49ad5fd8b4b1f1dd02487b6e1466\"\u003e\u003ccode\u003e82ebd3b\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14785\"\u003e#14785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/47.0.0...48.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.2.13 to 6.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8f8ad09659d728423a00e0a3b5f16da5c3a38e24\"\u003e\u003ccode\u003e8f8ad09\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/44ad76efcbe3c4ca0f08bb9dabe916f6374596c9\"\u003e\u003ccode\u003e44ad76e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-6907 -- Prevented caching of requests when Vary header...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1b0184aa657bc3f5859aeb0206e7c1e94e48b103\"\u003e\u003ccode\u003e1b0184a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-35192 -- Ensured Vary header is sent when setting sess...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ad8f9e19e0897ea45ded7c046ff28daf6f773e92\"\u003e\u003ccode\u003ead8f9e1\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-5766 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE in Memory...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/990ab01e70fd8f55e867b4a234c0ee242fd33fec\"\u003e\u003ccode\u003e990ab01\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/37039\"\u003e#37039\u003c/a\u003e -- Removed outdated note from QuerySet.iterator() docs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f0c269f285ab58bfb4a120141d7dd41ff4f42b45\"\u003e\u003ccode\u003ef0c269f\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed typo in stub release notes for 5.2.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8bcd15beeff6542acc381b83f50b061d62284c2b\"\u003e\u003ccode\u003e8bcd15b\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/37067\"\u003e#37067\u003c/a\u003e -- Added trailing slash in django_file_prefixes().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cdec6454fb86e8d03a06944c0c68025733ed93f\"\u003e\u003ccode\u003e3cdec64\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs CVE-2026-25674 -- Clarified role of umask in upload permissions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5dd5c70cf1056e8e04badb687f773e8f16bba257\"\u003e\u003ccode\u003e5dd5c70\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes and release date for 6.0.5 and 5.2.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8ee73415270a1a54daaec9bb529ad82c6f7a6d4c\"\u003e\u003ccode\u003e8ee7341\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/373\"\u003e#373\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/34122\"\u003e#34122\u003c/a\u003e -- Removed warning that ForeignObject is an interna...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.13...6.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.14.3 to 65.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-otp` from 1.3.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-otp/django-otp/blob/master/CHANGES.rst\"\u003edjango-otp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - January 07, 2026 - Async support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#185](https://github.com/django-otp/django-otp/issues/185)\u003c/code\u003e_: Make OTPMiddleware async capable\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Aljosha Papsch.\u003c/p\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/185\"\u003edjango-otp/django-otp#185\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.3 - October 25, 2025 - Spanish update\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#182](https://github.com/django-otp/django-otp/issues/182)\u003c/code\u003e_: Correct missing Spanish translations\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#181](https://github.com/django-otp/django-otp/issues/181)\u003c/code\u003e_: Wrong :rtype: in StaticToken.random_token docstring\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003edjango-otp/django-otp#181\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/182\"\u003e#182\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/182\"\u003edjango-otp/django-otp#182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.2 - October 21, 2025 - Cleanup\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#179](https://github.com/django-otp/django-otp/issues/179)\u003c/code\u003e_: Add missing gettext strings\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#180](https://github.com/django-otp/django-otp/issues/180)\u003c/code\u003e_: Remove tests from wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/179\"\u003e#179\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/179\"\u003edjango-otp/django-otp#179\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/180\"\u003e#180\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/180\"\u003edjango-otp/django-otp#180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.1 - July 08, 2025 - Small improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow a {token} placeholder in :setting:\u003ccode\u003eOTP_EMAIL_SUBJECT\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 - April 02, 2025 - Django 5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate test matrix for Django 5.2.\u003c/li\u003e\n\u003cli\u003eRemove support for Django 3.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.5.4 - September 06, 2024 - Ignore proxy models when enumerating device classes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#161](https://github.com/django-otp/django-otp/issues/161)\u003c/code\u003e_: Discard proxied models when iterating device models\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/161\"\u003e#161\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/161\"\u003edjango-otp/django-otp#161\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/django-otp/django-otp/commit/fc0d50b6f66da10fad250ce1640f0385f3229f48\"\u003e\u003ccode\u003efc0d50b\u003c/code\u003e\u003c/a\u003e Version 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/56e4ce3b5618de5d5a8a24c9eb709b51802ad06b\"\u003e\u003ccode\u003e56e4ce3\u003c/code\u003e\u003c/a\u003e Refactor test utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/8c4d4c23649316c55dad6a79fb06fa975e5e4702\"\u003e\u003ccode\u003e8c4d4c2\u003c/code\u003e\u003c/a\u003e Update test matrix for Django 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/0ac4ff33aa88fa73c12aa60713881481116a6d5f\"\u003e\u003ccode\u003e0ac4ff3\u003c/code\u003e\u003c/a\u003e Cleanup and changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b10df0d8cb94c8242ca48bbcea3d307b553808a5\"\u003e\u003ccode\u003eb10df0d\u003c/code\u003e\u003c/a\u003e Make OTPMiddleware async capable. (\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/81211794b8cc9c8befc6c8330b6652d3c4e78fd5\"\u003e\u003ccode\u003e8121179\u003c/code\u003e\u003c/a\u003e Raise requires-python to 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/38b7ebabd7b4817aec92f884d448eeb462e82108\"\u003e\u003ccode\u003e38b7eba\u003c/code\u003e\u003c/a\u003e Version 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b9026d7025da45b0144c99e91b5286c734448012\"\u003e\u003ccode\u003eb9026d7\u003c/code\u003e\u003c/a\u003e Correct Missing Spanish Translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/ae18ba95bd03534e15583d456572f86ea2f41442\"\u003e\u003ccode\u003eae18ba9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: misdocumented return type.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/c9eef89240985293e0c9f197d0257a5352cfb62d\"\u003e\u003ccode\u003ec9eef89\u003c/code\u003e\u003c/a\u003e Version 1.6.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-otp/django-otp/compare/v1.3.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-q2` from 1.9.0 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GDay/django-q2/releases\"\u003edjango-q2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import by \u003ca href=\"https://github.com/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd worker-process post-execute signal by \u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003easync_iter: fix BadSignature after the default Django cache expires by \u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation by \u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update Django Q2 compatibility information by \u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e by \u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: qmonitor crash when passing int values to term.center by \u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list by \u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.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/django-q2/django-q2/blob/master/CHANGELOG.md\"\u003edjango-q2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/django-q2/django-q2/tree/v1.10.0\"\u003ev1.10.0\u003c/a\u003e (2026-05-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/308\"\u003e#308\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd post_execute_in_worker signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with sync=True (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ru locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/django-q2/django-q2/commit/a699578c345f78b5f7faa5e34b6ccaf886ae7fd8\"\u003e\u003ccode\u003ea699578\u003c/code\u003e\u003c/a\u003e Release v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/5975a2d081db4fd6582f829e0df0dd9263ca4e28\"\u003e\u003ccode\u003e5975a2d\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/936fdd10b134dca4c5de020ca74b178742fd923e\"\u003e\u003ccode\u003e936fdd1\u003c/code\u003e\u003c/a\u003e Update Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/fab97463c2e724e46204fe8eab92a1a9bb8aebb2\"\u003e\u003ccode\u003efab9746\u003c/code\u003e\u003c/a\u003e Fix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1abdc5b653d9d5c362a6fb4a73df2d08acdc642e\"\u003e\u003ccode\u003e1abdc5b\u003c/code\u003e\u003c/a\u003e Convert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/01df35c92332801c21d8f12351e6b02c72608490\"\u003e\u003ccode\u003e01df35c\u003c/code\u003e\u003c/a\u003e Don't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/573b8da528c00a1fe8accf959d14e3af4a8f4e2a\"\u003e\u003ccode\u003e573b8da\u003c/code\u003e\u003c/a\u003e Update Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/8a563d289dc63f587d23237437f84af0f611d049\"\u003e\u003ccode\u003e8a563d2\u003c/code\u003e\u003c/a\u003e feat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1b0f71a39b80c49f0fcbb9a41b54b5dfaff0c175\"\u003e\u003ccode\u003e1b0f71a\u003c/code\u003e\u003c/a\u003e Fix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/b51575a4b03dfd4c22da6b948dddb35e2a243bef\"\u003e\u003ccode\u003eb51575a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epost_execute_in_worker\u003c/code\u003e signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GDay/django-q2/compare/v1.9.0...v1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 1.2.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges since 1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers\nwhen cloning from a local repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing\n\u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/blob/main/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.1\t2026-04-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecover from concurrent pack removals (e.g. a racing \u003ccode\u003egit repack\u003c/code\u003e or\n\u003ccode\u003egit gc --auto\u003c/code\u003e) instead of raising spurious \u003ccode\u003eKeyError\u003c/code\u003e /\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003ePack.index\u003c/code\u003e and \u003ccode\u003ePack.data\u003c/code\u003e now translate\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e during lazy load into \u003ccode\u003ePackFileDisappeared\u003c/code\u003e,\nand \u003ccode\u003ePackBasedObjectStore\u003c/code\u003e evicts the stale pack and rescans the\npack directory before retrying — equivalent to git's\n\u003ccode\u003ereprepare_packed_git()\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers when\ncloning from a local repo. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing \u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/commit/57806b8a4d041cd18bf84ba8d715f4dd0bc5e200\"\u003e\u003ccode\u003e57806b8\u003c/code\u003e\u003c/a\u003e Release 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a127d330de1ef497935146bcd978211d9894787f\"\u003e\u003ccode\u003ea127d33\u003c/code\u003e\u003c/a\u003e Honor GIT_PROTOCOL env var when picking default protocol version (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2149\"\u003e#2149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6c1697a108757766aba71624422a93900f2a867a\"\u003e\u003ccode\u003e6c1697a\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6685fde81a717d91d747953c2f9277939ea5ab6b\"\u003e\u003ccode\u003e6685fde\u003c/code\u003e\u003c/a\u003e lfs: use pathlib.Path.as_uri() for portable file:// URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/0d0b9f8d205eb45660d81d1efc5b7ff1fc579e61\"\u003e\u003ccode\u003e0d0b9f8\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a0dac57db7ba8a6d9fe67d1cf4303cef306647a2\"\u003e\u003ccode\u003ea0dac57\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/cd6ebd90fc8f2f1b267db29c418c12c7ebb971a3\"\u003e\u003ccode\u003ecd6ebd9\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/bfaf192aaba90df54e4e7b07bba11a28cf36012b\"\u003e\u003ccode\u003ebfaf192\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/06d7afdeb87f742bdfff93563fd0acd042473b0a\"\u003e\u003ccode\u003e06d7afd\u003c/code\u003e\u003c/a\u003e Move GIT_SSH/GIT_SSH_COMMAND env lookup from client.py to cli.py (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2156\"\u003e#2156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/e60e0c1a4d44441d2f6edfc01ba5098d2ed24cf0\"\u003e\u003ccode\u003ee60e0c1\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-1.2.0...dulwich-1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fonttools` from 4.62.1 to 4.63.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fonttools/fonttools/releases\"\u003efonttools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.63.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ttLib] Add support for Apple Color Emoji \u003ccode\u003ebgcl\u003c/code\u003e table (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4065\"\u003e#4065\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[ttLib] Add support for \u003ccode\u003eIFT\u003c/code\u003e and \u003ccode\u003eIFTX\u003c/code\u003e tables (Incremental Font Transfer, PatchMapFormat2) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4070\"\u003e#4070\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4072\"\u003e#4072\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[otData] Introduce \u003ccode\u003eFieldSpec\u003c/code\u003e dataclass for OpenType table schema definitions, replacing raw tuples in \u003ccode\u003eotData.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4076\"\u003e#4076\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[Feat] Show \u003ccode\u003ename\u003c/code\u003e table strings as comments next to label IDs in TTX output, matching the convention used by \u003ccode\u003efvar\u003c/code\u003e, \u003ccode\u003eSTAT\u003c/code\u003e, \u003ccode\u003etrak\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4089\"\u003e#4089\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fix Cython complex-division rounding difference in \u003ccode\u003esplit_cubic_into_three\u003c/code\u003e that could cause ±1 off-curve coordinate shifts (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3928\"\u003e#3928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4083\"\u003e#4083\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[designspaceLib] Fix \u003ccode\u003emap_backward\u003c/code\u003e\u003ccode\u003egooglefonts/ufo2ft#978\u003c/code\u003e\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4085\"\u003e#4085\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[OS/2] Fix \u003ccode\u003esetUnicodeRanges\u003c/code\u003e to accept reserved bits 123-127, restoring round-trip with \u003ccode\u003egetUnicodeRanges\u003c/code\u003e and fixing \u003ccode\u003erecalcUnicodeRanges\u003c/code\u003e crash in the subsetter (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4087\"\u003e#4087\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4088\"\u003e#4088\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cython] Declare Cython extensions as free-threading compatible on Python 3.13+, so that importing them on free-threaded Python no longer re-enables the GIL (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4073\"\u003e#4073\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4090\"\u003e#4090\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/fonttools/fonttools/blob/main/NEWS.rst\"\u003efonttools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.63.0 (released 2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ttLib] Add support for Apple Color Emoji \u003ccode\u003ebgcl\u003c/code\u003e table (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4065\"\u003e#4065\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[ttLib] Add support for \u003ccode\u003eIFT\u003c/code\u003e and \u003ccode\u003eIFTX\u003c/code\u003e tables (Incremental Font Transfer,\nPatchMapFormat2) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4070\"\u003e#4070\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4072\"\u003e#4072\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[otData] Introduce \u003ccode\u003eFieldSpec\u003c/code\u003e dataclass for OpenType table schema definitions,\nreplacing raw tuples in \u003ccode\u003eotData.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4076\"\u003e#4076\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[Feat] Show \u003ccode\u003ename\u003c/code\u003e table strings as comments next to label IDs in TTX output,\nmatching the convention used by \u003ccode\u003efvar\u003c/code\u003e, \u003ccode\u003eSTAT\u003c/code\u003e, \u003ccode\u003etrak\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4089\"\u003e#4089\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fix Cython complex-division rounding difference in\n\u003ccode\u003esplit_cubic_into_three\u003c/code\u003e that could cause ±1 off-curve coordinate shifts\n(\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3928\"\u003e#3928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4083\"\u003e#4083\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[designspaceLib] Fix \u003ccode\u003emap_backward\u003c/code\u003e for many-to-one (flat-segment) axis maps\nthat silently dropped entries via dict comprehension\n\u003ccode\u003egooglefonts/ufo2ft#978\u003c/code\u003e\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4085\"\u003e#4085\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[OS/2] Fix \u003ccode\u003esetUnicodeRanges\u003c/code\u003e to accept reserved bits 123-127, restoring\nround-trip with \u003ccode\u003egetUnicodeRanges\u003c/code\u003e and fixing \u003ccode\u003erecalcUnicodeRanges\u003c/code\u003e crash\nin the subsetter (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4087\"\u003e#4087\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4088\"\u003e#4088\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cython] Declare Cython extensions as free-threading compatible on Python 3.13+,\nso that importing them on free-threaded Python no longer re-enables the GIL\n(\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4073\"\u003e#4073\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4090\"\u003e#4090\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/fonttools/fonttools/commit/978d9edccb60ea0e5fbad7015cb11817c3532328\"\u003e\u003ccode\u003e978d9ed\u003c/code\u003e\u003c/a\u003e Release 4.63.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/6b40ecb6f13e076916044ecd8f0fc13ab5f957f6\"\u003e\u003ccode\u003e6b40ecb\u003c/code\u003e\u003c/a\u003e Add changelog entries for 4.63.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/382a35fb5e96c6ff38a1e7775a24e20bf122a66d\"\u003e\u003ccode\u003e382a35f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4090\"\u003e#4090\u003c/a\u003e from fonttools/fix-freethreading-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/0e999b55f05ad0dd8423f389673a32de9c5199bb\"\u003e\u003ccode\u003e0e999b5\u003c/code\u003e\u003c/a\u003e Declare Cython extensions as free-threading compatible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/9e55ea54c184b0d4c0830525f72e69c6c1a32691\"\u003e\u003ccode\u003e9e55ea5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4089\"\u003e#4089\u003c/a\u003e from fonttools/graphite-feat-labels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/e84db3ab426a251256ebec7904c03dc73e25932b\"\u003e\u003ccode\u003ee84db3a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4088\"\u003e#4088\u003c/a\u003e from fonttools/fix-setUnicodeRanges-bits-123-127\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/d6eabd1edf7bfa950b6b85c393e4c185dee36d7f\"\u003e\u003ccode\u003ed6eabd1\u003c/code\u003e\u003c/a\u003e Feat: show name table strings as comments next to label IDs in ttx\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/7d0902b2e27ec1433b015b3b8a79391d7c8604cb\"\u003e\u003ccode\u003e7d0902b\u003c/code\u003e\u003c/a\u003e OS/2: fix setUnicodeRanges round-trip for reserved bits 123-127\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/06e266ce70ec578d549c2df0e180a84d9323baf2\"\u003e\u003ccode\u003e06e266c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4085\"\u003e#4085\u003c/a\u003e from fonttools/fix-map-backward-non-injective\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/6d64598a63f83bcd59d29cf3f22dd25343bd9688\"\u003e\u003ccode\u003e6d64598\u003c/code\u003e\u003c/a\u003e Add more tests for map_backward with many-to-one axis maps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fonttools/fonttools/compare/4.62.1...4.63.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleapis-common-protos` from 1.74.0 to 1.75.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogleapis-common-protos's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleapis-common-protos: v1.75.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.74.0...googleapis-common-protos-v1.75.0\"\u003ev1.75.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3997a108c45e1c1df8e844746eb2af4b1a77e154\"\u003e\u003ccode\u003e3997a10\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260506T163115Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16964\"\u003e#16964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f655e492c0879684b60a7d06e90501dd49e96252\"\u003e\u003ccode\u003ef655e49\u003c/code\u003e\u003c/a\u003e chore: add type annotation to SYNCPOINTS (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16973\"\u003e#16973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f149bd7dd30489c3165bf03a2343dc9f75875451\"\u003e\u003ccode\u003ef149bd7\u003c/code\u003e\u003c/a\u003e refactor(bigframes): Modularize compiler routing as proxy executor (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16907\"\u003e#16907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/19db82f5cb033215531e5b65239e45275e3ed568\"\u003e\u003ccode\u003e19db82f\u003c/code\u003e\u003c/a\u003e chore(bigframes): remove leftover support for Python \u0026lt;= 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16961\"\u003e#16961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/2dedaacf0666ade39ae89194ad8dbc34761bd1df\"\u003e\u003ccode\u003e2dedaac\u003c/code\u003e\u003c/a\u003e chore: test CommonResource resource name alias (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16965\"\u003e#16965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9652a08cb89441fac779eb4fa4d6f48f33b55d3b\"\u003e\u003ccode\u003e9652a08\u003c/code\u003e\u003c/a\u003e fix: pass resource aliases to file-level CommonResources (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16945\"\u003e#16945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/78a48b040a2abc0bf19ebe267aba0a1f410df2e6\"\u003e\u003ccode\u003e78a48b0\u003c/code\u003e\u003c/a\u003e fix(google-cloud-core): Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16953\"\u003e#16953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5975c48186dd8798b172ac442fd55bc7fece1612\"\u003e\u003ccode\u003e5975c48\u003c/code\u003e\u003c/a\u003e fix(dns): Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16954\"\u003e#16954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d5bea2e99b435b8b3d75321679072db092001de6\"\u003e\u003ccode\u003ed5bea2e\u003c/code\u003e\u003c/a\u003e fix(crc32c): Drop support for Python 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16955\"\u003e#16955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/63f6d96c1c5569b5fdaea85dfe995ce280907b98\"\u003e\u003ccode\u003e63f6d96\u003c/code\u003e\u003c/a\u003e fix(sqlalchemy-bigquery): Drop support for Python 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16956\"\u003e#16956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.74.0...googleapis-common-protos-v1.75.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/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 `icalendar` from 7.0.3 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/collective/icalendar/releases\"\u003eicalendar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003cp\u003eTo view the changes, please see the \u003ca href=\"https://icalendar.readthedocs.io/en/latest/changelog.html\"\u003eChangelog\u003c/a\u003e. This release can be installed from \u003ca href=\"https://pypi.org/project/icalendar/#history\"\u003ePyPI\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/collective/icalendar/blob/main/CHANGES.rst\"\u003eicalendar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-04-30)\u003c/h2\u003e\n\u003cp\u003eMinor changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`\n- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`\n- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`\n- Make icalendar an explicit editable install for clarity. :pr:`1268`\n- Do not run some tests until a pull request is approved. :pr:`1246`\n- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`\n- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`\n- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`\n- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`\n- Add type hints to tests directory functions. :issue:`938`\n- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.\n\u003cp\u003eNew features\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`\n- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`\n- Added ``subcomponents`` parameter to :meth:`Component.new \u0026amp;lt;icalendar.cal.component.Component.new\u0026amp;gt;`, :meth:`Event.new \u0026amp;lt;icalendar.cal.event.Event.new\u0026amp;gt;`, :meth:`Todo.new \u0026amp;lt;icalendar.cal.todo.Todo.new\u0026amp;gt;`, and :meth:`Availability.new \u0026amp;lt;icalendar.cal.availability.Availability.new\u0026amp;gt;`. :issue:`1065`\n- Switch to uv for development. :issue:`1102`\n\nBug fixes\n~~~~~~~~~\n\n- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`\n- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnkno...\n\n_Description has been truncated_","html_url":"https://github.com/invenhost/InvenTree/pull/342","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/invenhost%2FInvenTree/issues/342","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/342/packages"},{"uuid":"4498741993","node_id":"PR_kwDOSkWQys7eJgD3","number":6,"state":"open","title":"build(deps-dev): bump pytest-codspeed from 2.2.1 to 5.0.2","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-05-22T00:09:49.000Z","updated_at":"2026-05-22T00:09:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"2.2.1","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 2.2.1 to 5.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: skip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003eCodSpeedHQ/pytest-codspeed#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: enable free-threaded wheels in cibuildwheel by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003eCodSpeedHQ/pytest-codspeed#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eMacOS walltime profiling is now available with the \u003ca href=\"https://github.com/CodSpeedHQ/codspeed/releases/tag/v4.16.1\"\u003ecodspeed cli v4.16.1\u003c/a\u003e and above.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epytest-codspeed\u003c/code\u003e can now be used in free threaded mode. This has been tested with 3.14t and 3.15t.\nFor this, we have dropped usage of \u003ccode\u003ecffi\u003c/code\u003e in favor of the native extension support.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: bump instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003eCodSpeedHQ/pytest-codspeed#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove CFFI in favor of native extension to support free-threaded mode by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003eCodSpeedHQ/pytest-codspeed#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(hooks): declare native extension free-thread safe by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003eCodSpeedHQ/pytest-codspeed#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: use instrument-hook markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003eCodSpeedHQ/pytest-codspeed#118\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eWe now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.\u003c/p\u003e\n\u003cp\u003eThis data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.2] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003e#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.1] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e💼 Other\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003e#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.0] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare native extension free-thread safe (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/120\"\u003e#120\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003e#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove cffi in favor of native extension by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚡ Performance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBind callgrind start/stop directly to avoid extra frame by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003e#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore common compilation warnings for instrument-hooks by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003e#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse unsigned bash in the macos test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pinned uv version to 0.11.14 by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.15 and 3.15t to test matrix by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14.t in test suite by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/119\"\u003e#119\u003c/a\u003e) by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003e#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e) by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003e#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python pinned python version by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003e#109\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/CodSpeedHQ/pytest-codspeed/commit/fc33d2098d7a1296b320b30e9ed14c270ab714b8\"\u003e\u003ccode\u003efc33d20\u003c/code\u003e\u003c/a\u003e Release v5.0.2 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/3bbabe482458518555fa9939902410ae8cf1baa8\"\u003e\u003ccode\u003e3bbabe4\u003c/code\u003e\u003c/a\u003e feat: skip Python runtime objects in callgrind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d4d9dc6ca011bbf6d21640e7c370d3d181f944cf\"\u003e\u003ccode\u003ed4d9dc6\u003c/code\u003e\u003c/a\u003e Release v5.0.1 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ad709a5904ea756c577dcfa91caff67c3cf8777a\"\u003e\u003ccode\u003ead709a5\u003c/code\u003e\u003c/a\u003e build: enable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/080d620ba846adaf6e1b70b96e525e773438034b\"\u003e\u003ccode\u003e080d620\u003c/code\u003e\u003c/a\u003e Release v5.0.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/befdebfba2cdebddd84d6377f8d14d72e0ad4086\"\u003e\u003ccode\u003ebefdebf\u003c/code\u003e\u003c/a\u003e chore: ignore common compilation warnings for instrument-hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ee98055fb69fba4cc62c3822ef3df4c7002352d3\"\u003e\u003ccode\u003eee98055\u003c/code\u003e\u003c/a\u003e chore: use unsigned bash in the macos test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/5a205c8822ca16db400ef25a5d8b51a65c875669\"\u003e\u003ccode\u003e5a205c8\u003c/code\u003e\u003c/a\u003e feat: use instrument_hooks markers in walltime\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/fda1fbc5f59ea9db783a13a2052c872d22ed9d28\"\u003e\u003ccode\u003efda1fbc\u003c/code\u003e\u003c/a\u003e feat(hooks): declare native extension free-thread safe (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/f3ed38804ccffc4e84f14710482c9c3e8ddf5d96\"\u003e\u003ccode\u003ef3ed388\u003c/code\u003e\u003c/a\u003e perf(hooks): bind callgrind start/stop directly to avoid extra frame\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v2.2.1...v5.0.2\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=2.2.1\u0026new-version=5.0.2)](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/raelldottin/repo-automation/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/raelldottin%2Frepo-automation/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4455198072","node_id":"PR_kwDOBOvWq87b-q4S","number":765,"state":"closed","title":"build(deps): bump pytest-codspeed from 5.0.1 to 5.0.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-15T15:54:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-15T15:52:40.000Z","updated_at":"2026-05-15T15:56:47.000Z","time_to_close":114,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"pytest-codspeed","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.1 to 5.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: skip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003eCodSpeedHQ/pytest-codspeed#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.2] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003e#122\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/CodSpeedHQ/pytest-codspeed/commit/fc33d2098d7a1296b320b30e9ed14c270ab714b8\"\u003e\u003ccode\u003efc33d20\u003c/code\u003e\u003c/a\u003e Release v5.0.2 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/3bbabe482458518555fa9939902410ae8cf1baa8\"\u003e\u003ccode\u003e3bbabe4\u003c/code\u003e\u003c/a\u003e feat: skip Python runtime objects in callgrind\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.1\u0026new-version=5.0.2)](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/aio-libs/async-lru/pull/765","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Fasync-lru/issues/765","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/765/packages"},{"uuid":"4450182039","node_id":"PR_kwDOSQXwv87bumta","number":67,"state":"open","title":"chore(deps): bump the uv-dependencies group across 1 directory with 33 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T23:56:49.000Z","updated_at":"2026-05-14T23:58:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":33,"packages":[{"name":"apprise","old_version":"1.9.9","new_version":"1.10.0","repository_url":"https://github.com/caronc/apprise"},{"name":"cryptography","old_version":"46.0.7","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"cyclopts","old_version":"4.10.2","new_version":"4.12.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.0.6","new_version":"7.1.1","repository_url":"https://github.com/tkem/cachetools"},{"name":"coolname","old_version":"4.2.0","new_version":"5.0.0","repository_url":"https://github.com/alexanderlukanin13/coolname"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.8","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.1","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic","old_version":"2.13.3","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.0","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"uvicorn","old_version":"0.45.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.19.2","new_version":"0.20.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.7","new_version":"0.11.14","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-dbt","old_version":"0.7.23","new_version":"0.7.24","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-redis","old_version":"0.2.10","new_version":"0.2.11","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.1.22","new_version":"5.2.1","repository_url":"https://github.com/getmoto/moto"},{"name":"pyright","old_version":"1.1.408","new_version":"1.1.409","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.3","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-cachetools","old_version":"6.2.0.20260408","new_version":"7.0.0.20260503","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20260408","new_version":"6.0.12.20260510","repository_url":"https://github.com/python/typeshed"},{"name":"types-dateparser","old_version":"1.4.0.20260408","new_version":"1.4.0.20260508","repository_url":"https://github.com/python/typeshed"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 26 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.9.9` | `1.10.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `48.0.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.10.2` | `4.12.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.6` | `7.1.1` |\n| [coolname](https://github.com/alexanderlukanin13/coolname) | `4.2.0` | `5.0.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.4.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.41.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.8` | `3.11.9` |\n| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.0` | `2.14.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.45.0` | `0.47.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.19.2` | `0.20.2` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.7` | `0.11.14` |\n| [prefect-dbt](https://github.com/PrefectHQ/prefect) | `0.7.23` | `0.7.24` |\n| [prefect-redis](https://github.com/PrefectHQ/prefect) | `0.2.10` | `0.2.11` |\n| [moto](https://github.com/getmoto/moto) | `5.1.22` | `5.2.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.408` | `1.1.409` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.13` |\n| [types-cachetools](https://github.com/python/typeshed) | `6.2.0.20260408` | `7.0.0.20260503` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260408` | `6.0.12.20260510` |\n| [types-dateparser](https://github.com/python/typeshed) | `1.4.0.20260408` | `1.4.0.20260508` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `5.0.2` |\n\n\nUpdates `apprise` from 1.9.9 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThe big wow factor of this release would be the huge effort put into Matrix E2EE built into Apprise without adding overhead to the plugin itself. Huge props to those that helped out.  Other than that, a few more services have been added (137 supported now :rocket: ).\u003c/p\u003e\n\u003cp\u003eThe official documentation website (\u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) got a nice cleanup; the Service listings are now searchable; some nice tweaks to the URL Builder as well.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOpsgenie functionality ported to jira:// in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1273\"\u003ecaronc/apprise#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvolution API (WhatsApp) notification plugin by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1579\"\u003ecaronc/apprise#1579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded blink(1) support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1578\"\u003ecaronc/apprise#1578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExotel Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/782\"\u003ecaronc/apprise#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Octopush Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/622\"\u003ecaronc/apprise#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Postmark support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1590\"\u003ecaronc/apprise#1590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003entfy:// tags= changed to xtags= in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1555\"\u003ecaronc/apprise#1555\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003ethis allows tags to work again correctly for those dependant on it; previously \u003ccode\u003etags=\u003c/code\u003e conflicted with \u003ccode\u003etags=\u003c/code\u003e in Apprise)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eXMPP server hostname can differentiate to what is found in JID in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1560\"\u003ecaronc/apprise#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with mailto:// when using yahoo.com in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1561\"\u003ecaronc/apprise#1561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFluxer time dependant unittest assertion optimized for slower systems in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1566\"\u003ecaronc/apprise#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed templating references impacting url generation (on \u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1582\"\u003ecaronc/apprise#1582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed KeyError Exception thrown when certain emoji's specified in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1592\"\u003ecaronc/apprise#1592\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the Dot. (Quote/0) plugin from API v1 to API v2 by \u003ca href=\"https://github.com/HerbertGao\"\u003e\u003ccode\u003e@​HerbertGao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1512\"\u003ecaronc/apprise#1512\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Dot. plugin to better align with Apprise in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1588\"\u003ecaronc/apprise#1588\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eURLs that can not be loaded are more verbose for the reasoning in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1568\"\u003ecaronc/apprise#1568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebex wxteams:// Bot API Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1567\"\u003ecaronc/apprise#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes parse_url() -\u0026gt; url() -\u0026gt; parse_url() inconsistency in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1572\"\u003ecaronc/apprise#1572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushover Delivery Group Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1563\"\u003ecaronc/apprise#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix token template cleanup in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1573\"\u003ecaronc/apprise#1573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efcm:// add apns-push-type header for reliable iOS delivery by \u003ca href=\"https://github.com/AlbertoLanaro\"\u003e\u003ccode\u003e@​AlbertoLanaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1577\"\u003ecaronc/apprise#1577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHome Assistant \u0026quot;Service' Notification Support Added (extension to what was already there) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1294\"\u003ecaronc/apprise#1294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded attachment support to Mattermost in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1583\"\u003ecaronc/apprise#1583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Matrix E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1574\"\u003ecaronc/apprise#1574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix Hookshot support added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1586\"\u003ecaronc/apprise#1586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMastodon supports hashtag/user references in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1587\"\u003ecaronc/apprise#1587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushPlus refactored to support more options in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1589\"\u003ecaronc/apprise#1589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInproved azure:// error handling and message responses in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1499\"\u003ecaronc/apprise#1499\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1554\"\u003ecaronc/apprise#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemory-Optimized Plugin Management in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1557\"\u003ecaronc/apprise#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter configuration updated and applied to entire codebase in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1562\"\u003ecaronc/apprise#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(pt_BR): add Brazilian Portuguese translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1580\"\u003ecaronc/apprise#1580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(es): add Spanish translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1581\"\u003ecaronc/apprise#1581\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\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/caronc/apprise/commit/343c960969477b60df580f70294ce966bb4b0ce2\"\u003e\u003ccode\u003e343c960\u003c/code\u003e\u003c/a\u003e bummped version to v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/67b523077173bcf8c717b0e567b7d2e7251d21e1\"\u003e\u003ccode\u003e67b5230\u003c/code\u003e\u003c/a\u003e Inproved azure:// error handling and message responses (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1499\"\u003e#1499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/755f17479ff20fd9473e1aa15ab1b190920041c3\"\u003e\u003ccode\u003e755f174\u003c/code\u003e\u003c/a\u003e bugfix: KeyError Exception thrown when certain emoji's specified (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1592\"\u003e#1592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/a7bc56dd81ea60b1c9f59775d1e005e560a716b9\"\u003e\u003ccode\u003ea7bc56d\u003c/code\u003e\u003c/a\u003e PushPlus refactored to support more options (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1589\"\u003e#1589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9d0056b9cd4771bc752d4ff2936a1e4977e3fa81\"\u003e\u003ccode\u003e9d0056b\u003c/code\u003e\u003c/a\u003e Added Postmark support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0617ef7ac63cc6f1e850913c055e280043360358\"\u003e\u003ccode\u003e0617ef7\u003c/code\u003e\u003c/a\u003e Updated Dot. plugin to better align with Apprise standards (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1588\"\u003e#1588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0fbe0946869fab49c330d6fd5fb89ea58cb9b6db\"\u003e\u003ccode\u003e0fbe094\u003c/code\u003e\u003c/a\u003e Added Octopush Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/58d0f1e00a5e4daac928372d1b49a2886e7589f2\"\u003e\u003ccode\u003e58d0f1e\u003c/code\u003e\u003c/a\u003e Exotel Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/2a8d62fad5dc1930d8f14e0775341692ff0c5aa5\"\u003e\u003ccode\u003e2a8d62f\u003c/code\u003e\u003c/a\u003e Mastodon supports hashtag/user references (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1587\"\u003e#1587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1382633788004b515240c0f17c5b0cfe0f111554\"\u003e\u003ccode\u003e1382633\u003c/code\u003e\u003c/a\u003e Matrix Hookshot support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.9.9...v1.10.0\"\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.7 to 48.0.0\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\u003e48.0.0 - 2026-05-04\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **BACKWARDS INCOMPATIBLE:** Support for Python 3.8 has been removed.\n  ``cryptography`` now requires Python 3.9 or later.\n* **BACKWARDS INCOMPATIBLE:** Loading an X.509 CRL whose inner\n  ``TBSCertList.signature`` algorithm does not match the outer\n  ``signatureAlgorithm`` now raises ``ValueError``. Previously, such CRLs\n  were parsed successfully and only rejected during signature validation.\n* Added support for :doc:`/hazmat/primitives/asymmetric/mlkem` and\n  :doc:`/hazmat/primitives/asymmetric/mldsa` when using OpenSSL 3.5.0 or\n  later, in addition to the existing AWS-LC and BoringSSL support. This means\n  post-quantum algorithms are now available to users of our wheels.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Going forward, we do not guarantee that all functionality\u003cbr /\u003e\nin \u003ccode\u003ecryptography\u003c/code\u003e will be available when building against\u003cbr /\u003e\nOpenSSL. See :doc:\u003ccode\u003e/statements/state-of-openssl\u003c/code\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v47-0-0:\u003c/p\u003e\n\u003cp\u003e47.0.0 - 2026-04-24\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.8 is deprecated and will be removed in the next\n\u003ccode\u003ecryptography\u003c/code\u003e release.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for binary elliptic curves\n(\u003ccode\u003eSECT*\u003c/code\u003e classes) has been removed. These curves are rarely used and\nhave additional security considerations that make them undesirable.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for OpenSSL 1.1.x has been removed.\nOpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC\ncontinue to be supported.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Dropped support for LibreSSL \u0026lt; 4.1.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Loading keys with unsupported algorithms or\nkeys with unsupported explicit curve encodings now raises\n:class:\u003ccode\u003e~cryptography.exceptions.UnsupportedAlgorithm\u003c/code\u003e instead of\n\u003ccode\u003eValueError\u003c/code\u003e. This change affects\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_public_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_public_key\u003c/code\u003e,\nand :meth:\u003ccode\u003e~cryptography.x509.Certificate.public_key\u003c/code\u003e when called on\ncertificates with unsupported public key algorithms.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e When parsing elliptic curve private keys, we now\nreject keys that incorrectly encode a private key of the wrong length because\nsuch keys are impossible to process in a constant-time manner. We do not\nbelieve keys with this problem are in wide use, however we may revert this\nchange based on the feedback we receive.\u003c/li\u003e\n\u003cli\u003eDeprecated passing 64-bit (8-byte) and 128-bit (16-byte) keys to\n:class:\u003ccode\u003e~cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES\u003c/code\u003e. In a\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/pyca/cryptography/commit/8e03e30e3aae01632a697e903e3593c924f0139d\"\u003e\u003ccode\u003e8e03e30\u003c/code\u003e\u003c/a\u003e bump for 48.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14796\"\u003e#14796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71\"\u003e\u003ccode\u003e295e0d2\u003c/code\u003e\u003c/a\u003e Add AGENTS.md with CLAUDE.md symlink (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14794\"\u003e#14794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8\"\u003e\u003ccode\u003e104a2de\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926\"\u003e\u003ccode\u003e67ec1e5\u003c/code\u003e\u003c/a\u003e call check_length early on AesSiv::encrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14792\"\u003e#14792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26\"\u003e\u003ccode\u003eb2da57a\u003c/code\u003e\u003c/a\u003e changelog for mldsa/mlkem for openssl (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14791\"\u003e#14791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0\"\u003e\u003ccode\u003e3cf44ad\u003c/code\u003e\u003c/a\u003e ML-KEM OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14781\"\u003e#14781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83\"\u003e\u003ccode\u003e2e31639\u003c/code\u003e\u003c/a\u003e ML-DSA OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14773\"\u003e#14773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3\"\u003e\u003ccode\u003e5affe5a\u003c/code\u003e\u003c/a\u003e fix rust nightly clippy (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14790\"\u003e#14790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec\"\u003e\u003ccode\u003e2e73ca4\u003c/code\u003e\u003c/a\u003e bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/82ebd3b9f49d49ad5fd8b4b1f1dd02487b6e1466\"\u003e\u003ccode\u003e82ebd3b\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14785\"\u003e#14785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.7...48.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2026.1.post1 to 2026.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/45957c55be9dbf013b636aeb7d22dc7bec81a9f4\"\u003e\u003ccode\u003e45957c5\u003c/code\u003e\u003c/a\u003e Bump github actions/checkout to \u003ca href=\"https://github.com/v6\"\u003e\u003ccode\u003e@​v6\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/8e927c67c98ccde3624642f2f32cd6c5208a5161\"\u003e\u003ccode\u003e8e927c6\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2026.2 (IANA 2026b)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/6f08adec7bcb382e78afedb660f94f38a093fddf\"\u003e\u003ccode\u003e6f08ade\u003c/code\u003e\u003c/a\u003e IANA 2026b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/edbfbdf8f708657ce5b9fee32e2f8eaa8647359a\"\u003e\u003ccode\u003eedbfbdf\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from dd6be6d155..8be0d5483d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/a148b0390a42ea9a95ef7f6d8c346307405708d5\"\u003e\u003ccode\u003ea148b03\u003c/code\u003e\u003c/a\u003e Fix typo in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b841195f5df79455ee3aa9ec3d8749af835dab48\"\u003e\u003ccode\u003eb841195\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2026.1.post1...release_2026.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.10.2 to 4.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.12.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow for validators to be string(s) (class method forward reference) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/803\"\u003eBrianPugh/cyclopts#803\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_should_attempt_json_list\u003c/code\u003e for detecting \u003ccode\u003elist[str] | None\u003c/code\u003e and Annotated annotations by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/800\"\u003eBrianPugh/cyclopts#800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude meta-apps when assembling usage string by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/793\"\u003eBrianPugh/cyclopts#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing python3.14 classifier by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/796\"\u003eBrianPugh/cyclopts#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003cstrong\u003euntyped\u003c/strong\u003e boolean negative name derivation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/798\"\u003eBrianPugh/cyclopts#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious completion fixes by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/794\"\u003eBrianPugh/cyclopts#794\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eusage_name\u003c/code\u003e override for configuring docs creation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/791\"\u003eBrianPugh/cyclopts#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded granular help for \u003ccode\u003edict[str, dataclass-like]\u003c/code\u003e params by \u003ca href=\"https://github.com/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hints/completion for attrs converter functions. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/784\"\u003eBrianPugh/cyclopts#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix token_count for discriminated unions by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/789\"\u003eBrianPugh/cyclopts#789\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc Internal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eprefer using consistent \u003ccode\u003eis_annotated\u003c/code\u003e over get_origin by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/792\"\u003eBrianPugh/cyclopts#792\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/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b0c66c452139de521f0bab4260eeda2af5ca15e9\"\u003e\u003ccode\u003eb0c66c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/803\"\u003e#803\u003c/a\u003e from BrianPugh/str-reference-validator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/bad4370647e1daabbad0edabdbc2606e68574a8f\"\u003e\u003ccode\u003ebad4370\u003c/code\u003e\u003c/a\u003e Missing test coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/efe193001cce30a0e9f0f8cf854bf47171d7942d\"\u003e\u003ccode\u003eefe1930\u003c/code\u003e\u003c/a\u003e resolve string forward-referenced validators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/921b1fa36afa2faca35f5e54d366f27816bed407\"\u003e\u003ccode\u003e921b1fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/800\"\u003e#800\u003c/a\u003e from BrianPugh/json-list-detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f37a3fa84d70a2df6481296199777bd048cdd8b0\"\u003e\u003ccode\u003ef37a3fa\u003c/code\u003e\u003c/a\u003e use self.hint instead of self.field_info.annotation in _should_attempt_json_list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f54568a310a0f8fb69bf570cfc82f65320f0f005\"\u003e\u003ccode\u003ef54568a\u003c/code\u003e\u003c/a\u003e replicate bug described by \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/799\"\u003e#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/9e0806f2c1cf4a8ba1f78f4a5c6c3cee54d81d41\"\u003e\u003ccode\u003e9e0806f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/794\"\u003e#794\u003c/a\u003e from BrianPugh/better-completion-harness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ad4f7e2e1b50403069f6e5136bce6ead4a285565\"\u003e\u003ccode\u003ead4f7e2\u003c/code\u003e\u003c/a\u003e more tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5d5259f0c275456c313f8266d9ea85545d4f7573\"\u003e\u003ccode\u003e5d5259f\u003c/code\u003e\u003c/a\u003e fix: don't escape option/command names in single-quoted bash arrays\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b0dc417b95629d52321ce32aa7b2aee6377135f0\"\u003e\u003ccode\u003eb0dc417\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/798\"\u003e#798\u003c/a\u003e from BrianPugh/untyped-boolean-negative\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.6 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.1 (2026-05-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type stub improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.0 (2026-05-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type stubs based on the work of the good people at \u003ccode\u003etypeshed \u0026lt;https://github.com/python/typeshed/tree/main/stubs/cachetools/\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate unit tests.\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/tkem/cachetools/commit/2e6a2d21c44e83b56c06cc9dd738e5b7a097ce6a\"\u003e\u003ccode\u003e2e6a2d2\u003c/code\u003e\u003c/a\u003e Release v7.1.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/cc065582849e3658d2c92aac0f5c2b6271ed077f\"\u003e\u003ccode\u003ecc06558\u003c/code\u003e\u003c/a\u003e Minor typing improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/193dd62d9be4e1099039e8fba59a1fe50e8f4d08\"\u003e\u003ccode\u003e193dd62\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/393\"\u003e#393\u003c/a\u003e: Improve ambiguous overloads for decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/1ea3422e058ef8b6b7dc15beb9d44d8f7c195a62\"\u003e\u003ccode\u003e1ea3422\u003c/code\u003e\u003c/a\u003e Bump release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/d9874465a6ab6f9d1d56cef91370f9c237a7eca6\"\u003e\u003ccode\u003ed987446\u003c/code\u003e\u003c/a\u003e Release v7.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3d79e80a4a54892d1552cd17da8e27920c1918d8\"\u003e\u003ccode\u003e3d79e80\u003c/code\u003e\u003c/a\u003e Update Copilot Instructions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/83fe6bc78d0155a0036dda8a8eb1a2ddb8f26c60\"\u003e\u003ccode\u003e83fe6bc\u003c/code\u003e\u003c/a\u003e Add tox pyright check.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bd3fbc49212eb948e08e9c478e5901f1293fd1f4\"\u003e\u003ccode\u003ebd3fbc4\u003c/code\u003e\u003c/a\u003e Improve typing support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/09dd6fec4b1b2339451ab26d1ca3c7a049b8c38c\"\u003e\u003ccode\u003e09dd6fe\u003c/code\u003e\u003c/a\u003e Improve original type stubs from typeshed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/873c7013ea92b16f2f24a6001e625fabfdf951a5\"\u003e\u003ccode\u003e873c701\u003c/code\u003e\u003c/a\u003e Add typeshed typings.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.6...v7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coolname` from 4.2.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexanderlukanin13/coolname/blob/master/HISTORY.rst\"\u003ecoolname's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0 (2026-04-22)\u003c/h2\u003e\n\u003cp\u003eThis major release has new features and significant internal changes, but it is compatible with 4.x in any normal usage\nas described in documentation, and you can upgrade from 4.x with minimal unit test coverage.\u003c/p\u003e\n\u003cp\u003eThere are implementation changes that \u003cem\u003etheoretically\u003c/em\u003e can break user code in undocumented scenarios.\nEven if it breaks, most likely, it will take a minute to fix.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's new in the default generator:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eComplete typing support, tested with mypy \u003ccode\u003estrict = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a few more words, and fixed one spelling mistake.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. collapse:: Boring technical details\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* :py:class:`RandomGenerator` and global methods like :py:func:`generate_slug` now live in the top-level\n  ``coolname`` namespace.\n  It won't affect your code if you've been importing directly from ``coolname`` as per documentation.\n\u003cp\u003eBasically, instead of this:\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; from coolname import generate_slug, RandomGenerator\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.impl.RandomGenerator object at 0x7a7cb248d6a0\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.impl.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou will see this (notice no \u003ccode\u003eimpl\u003c/code\u003e):\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.RandomGenerator object at 0x75038bacde80\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIn custom generators:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDefault parameter value changed: \u003ccode\u003eensure_unique=True\u003c/code\u003e. Custom generators can forget about it\nand still generate sequences without repeating words.\nConsider also using \u003ccode\u003eensure_unique_prefix\u003c/code\u003e (disabled by default).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:doc:\u003ccode\u003eNew parameters \u0026lt;parameters-table\u0026gt;\u003c/code\u003e for advanced words/phrases lists:\n\u003ccode\u003estrip_whitespace\u003c/code\u003e, \u003ccode\u003eallow_whitespace\u003c/code\u003e, \u003ccode\u003eseparator\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhat is considered a valid word? It's now controlled by \u003ccode\u003eword_regex\u003c/code\u003e parameter, \u003ccode\u003e\\w+\u003c/code\u003e by default.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/7d450781390fc2193b676a339e34adb697f1febb\"\u003e\u003ccode\u003e7d45078\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/13541d9e8e768751898732e51188defb5524917d\"\u003e\u003ccode\u003e13541d9\u003c/code\u003e\u003c/a\u003e docs: autodoc fix - build package first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/8015c5efc0f209a685be2ff6b5bc5f82c5594996\"\u003e\u003ccode\u003e8015c5e\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/659fad71955a169543a76acb5188af68ea1a8b95\"\u003e\u003ccode\u003e659fad7\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/3a1d21b788f9276b2ff8421b1a7f20e90df25fa8\"\u003e\u003ccode\u003e3a1d21b\u003c/code\u003e\u003c/a\u003e docs: HISTORY\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/a351596508e19f178ce5513f9029f2cd662d8338\"\u003e\u003ccode\u003ea351596\u003c/code\u003e\u003c/a\u003e feat: number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/9e04baba3f69c1465ad8e85c384f58af5904b309\"\u003e\u003ccode\u003e9e04bab\u003c/code\u003e\u003c/a\u003e work in progress\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/4f0b8f98a5cc5937f27eefcde8b8e6acc3f988c2\"\u003e\u003ccode\u003e4f0b8f9\u003c/code\u003e\u003c/a\u003e improved: PhraseSplitter clearer error messages + tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e9cceba9fc104145588447f0e9a07d5b223914ab\"\u003e\u003ccode\u003ee9cceba\u003c/code\u003e\u003c/a\u003e refactor: use pathlib.Path in coolname.loader; updated tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e6484ed0c9d1c6cd1258f05218f2a1dae0cbabf6\"\u003e\u003ccode\u003ee6484ed\u003c/code\u003e\u003c/a\u003e Bump pytest from 7.4.4 to 9.0.3 in /requirements\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexanderlukanin13/coolname/compare/4.2.0...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.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\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/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.136.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 `fsspec` from 2026.3.0 to 2026.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8fdedd1fd17be354f75f0cec1f973d93416c704b\"\u003e\u003ccode\u003e8fdedd1\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8205d0d1afecb64f34565ebeb073b7f1959a869d\"\u003e\u003ccode\u003e8205d0d\u003c/code\u003e\u003c/a\u003e Release (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/50bfba22200077fa602038857e19d58cc2541db5\"\u003e\u003ccode\u003e50bfba2\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/f58bc851213ab3a87b2d26c01c9d26b291b0e1d3\"\u003e\u003ccode\u003ef58bc85\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c6c7b40b7794c6e554d9dcae7bf4930bba67e403\"\u003e\u003ccode\u003ec6c7b40\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/3bc67f85c3b67c5adef11af35761fd839de306fb\"\u003e\u003ccode\u003e3bc67f8\u003c/code\u003e\u003c/a\u003e DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/0b290bf1336bb15d4327afcdf743d9a17b5ea762\"\u003e\u003ccode\u003e0b290bf\u003c/code\u003e\u003c/a\u003e docs: add URL handling note to HTTPFileSystem class docstring (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/b33a2d6c3b6912c645d9a315791f41e74bff4c66\"\u003e\u003ccode\u003eb33a2d6\u003c/code\u003e\u003c/a\u003e ci: install downstream systems like gcsfs before testing so the \u003ccode\u003e_version.py\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e9e7a5b5eab42b6c6d0790aa0aa510f66fc44630\"\u003e\u003ccode\u003ee9e7a5b\u003c/code\u003e\u003c/a\u003e Delegate DirFileSystem delete and write_text (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2022\"\u003e#2022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/105d614a443e3f46236deb87442cc5491741687c\"\u003e\u003ccode\u003e105d614\u003c/code\u003e\u003c/a\u003e fix: use encode_url() in _pipe_file for consistency (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2023\"\u003e#2023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2026.3.0...2026.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.39.1 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\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/open-telemetry/opentelemetry-python/commit/760e0248edbd01ae817941c1dfa61c07241b0727\"\u003e\u003ccode\u003e760e024\u003c/code\u003e\u003c/a\u003e Prepare release 1.41.1/0.62b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/90e06bcd8c024a38ecf388c19c5a15fc094ea0ed\"\u003e\u003ccode\u003e90e06bc\u003c/code\u003e\u003c/a\u003e Unreleased changelog for 1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.11.8 to 3.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9 - 2026-05-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a\"\u003e\u003ccode\u003e705515d\u003c/code\u003e\u003c/a\u003e 3.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6\"\u003e\u003ccode\u003ed19055d\u003c/code\u003e\u003c/a\u003e build update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0\"\u003e\u003ccode\u003e77e2d96\u003c/code\u003e\u003c/a\u003e MSRV 1.95, remove compiler feature detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.8...3.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.1 to 26.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \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/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now 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/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details 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/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite 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/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation 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/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example 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/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor 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/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees 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/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd 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/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1169\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.3 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\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/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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/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\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.46.3 to 2.46.4\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/py...\n\n_Description has been truncated_","html_url":"https://github.com/sxarsky/eval-prefect/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sxarsky%2Feval-prefect/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"},{"uuid":"4408721398","node_id":"PR_kwDOBR6lPc7Zpu8L","number":11899,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["python","dependencies"],"assignees":["matmair"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-08T19:05:22.000Z","updated_at":"2026-05-09T22:13:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":21,"packages":[{"name":"bleach","old_version":"4.1.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"boto3","old_version":"1.42.96","new_version":"1.43.1","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.96","new_version":"1.43.1","repository_url":"https://github.com/boto/botocore"},{"name":"django-q2","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/GDay/django-q2"},{"name":"dulwich","old_version":"1.2.0","new_version":"1.2.1","repository_url":"https://github.com/dulwich/dulwich"},{"name":"icalendar","old_version":"7.0.3","new_version":"7.1.0","repository_url":"https://github.com/collective/icalendar"},{"name":"importlib-metadata","old_version":"8.7.1","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"nh3","old_version":"0.3.4","new_version":"0.3.5","repository_url":"https://github.com/messense/nh3"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.34.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"s3transfer","old_version":"0.16.1","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 21 updates in the /src/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.96` | `1.43.1` |\n| [botocore](https://github.com/boto/botocore) | `1.42.96` | `1.43.1` |\n| [django-q2](https://github.com/GDay/django-q2) | `1.9.0` | `1.10.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `1.2.0` | `1.2.1` |\n| [icalendar](https://github.com/collective/icalendar) | `7.0.3` | `7.1.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.4` | `0.3.5` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.1` | `0.17.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `4.5.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.0` |\n\n\nUpdates `bleach` from 4.1.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.96 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/753bcab42942e4e0f6e3deb5e4eb5af40d0ffb8b\"\u003e\u003ccode\u003e753bcab\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dd5b3a659894c0c8c92c4c696625fe7735fddcb1\"\u003e\u003ccode\u003edd5b3a6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014f4adb1a991f5575fca9688568a388e9f0d339\"\u003e\u003ccode\u003e014f4ad\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/32edf1c268b58c8e16e144271252ce90ebfdc1ef\"\u003e\u003ccode\u003e32edf1c\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4781\"\u003e#4781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/959ae842a0048833cab303e1cf88dfc523f604b1\"\u003e\u003ccode\u003e959ae84\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/146ede25caacdfdc8bff79cc8f5028292dfe41f6\"\u003e\u003ccode\u003e146ede2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/048bf84492d9d55b327a67f4ab07476eb62c2ee1\"\u003e\u003ccode\u003e048bf84\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/20381d5695aa766f041b42dcda9600e14f32bd15\"\u003e\u003ccode\u003e20381d5\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ee6aa9711b74b165eac0b26bb724c7326791dc24\"\u003e\u003ccode\u003eee6aa97\u003c/code\u003e\u003c/a\u003e Deprecate Python 3.9 support (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1780d6b791333f1279e03a04a2efc476af2af5d9\"\u003e\u003ccode\u003e1780d6b\u003c/code\u003e\u003c/a\u003e Remove CC-BY-NC-SA-4.0 license headers from docs files (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4778\"\u003e#4778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.96...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.96 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7084f04c816749a7275317441440f3705ec25cf4\"\u003e\u003ccode\u003e7084f04\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1dd07e0619e1c4d7eaa5443e7a28667f7b0a5431\"\u003e\u003ccode\u003e1dd07e0\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/eebf8158db41450f23ae0365dcbb3d8671311490\"\u003e\u003ccode\u003eeebf815\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/98952d24c3e7cecd87b48f717c358ab526f065b0\"\u003e\u003ccode\u003e98952d2\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/33559569fbb76b88e23f9e7be870be028e44a45e\"\u003e\u003ccode\u003e3355956\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/05dafea17e8a7758d0099d11ef573b8a62c413bf\"\u003e\u003ccode\u003e05dafea\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/dc9312350d2bf85ec07d0f7d27cd77c96fc8b5a1\"\u003e\u003ccode\u003edc93123\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/047f23f3b089f10c098010d41e0c355cc13a92be\"\u003e\u003ccode\u003e047f23f\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/44df5850e51fe566075fd5ecd3a8a512aedec47a\"\u003e\u003ccode\u003e44df585\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/924fe63134e9608c083b298a9e3007d64453e27e\"\u003e\u003ccode\u003e924fe63\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.96...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-q2` from 1.9.0 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GDay/django-q2/releases\"\u003edjango-q2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import by \u003ca href=\"https://github.com/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd worker-process post-execute signal by \u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003easync_iter: fix BadSignature after the default Django cache expires by \u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation by \u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update Django Q2 compatibility information by \u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e by \u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: qmonitor crash when passing int values to term.center by \u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list by \u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.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/django-q2/django-q2/blob/master/CHANGELOG.md\"\u003edjango-q2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/django-q2/django-q2/tree/v1.10.0\"\u003ev1.10.0\u003c/a\u003e (2026-05-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/308\"\u003e#308\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd post_execute_in_worker signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with sync=True (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ru locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/django-q2/django-q2/commit/a699578c345f78b5f7faa5e34b6ccaf886ae7fd8\"\u003e\u003ccode\u003ea699578\u003c/code\u003e\u003c/a\u003e Release v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/5975a2d081db4fd6582f829e0df0dd9263ca4e28\"\u003e\u003ccode\u003e5975a2d\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/936fdd10b134dca4c5de020ca74b178742fd923e\"\u003e\u003ccode\u003e936fdd1\u003c/code\u003e\u003c/a\u003e Update Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/fab97463c2e724e46204fe8eab92a1a9bb8aebb2\"\u003e\u003ccode\u003efab9746\u003c/code\u003e\u003c/a\u003e Fix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1abdc5b653d9d5c362a6fb4a73df2d08acdc642e\"\u003e\u003ccode\u003e1abdc5b\u003c/code\u003e\u003c/a\u003e Convert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/01df35c92332801c21d8f12351e6b02c72608490\"\u003e\u003ccode\u003e01df35c\u003c/code\u003e\u003c/a\u003e Don't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/573b8da528c00a1fe8accf959d14e3af4a8f4e2a\"\u003e\u003ccode\u003e573b8da\u003c/code\u003e\u003c/a\u003e Update Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/8a563d289dc63f587d23237437f84af0f611d049\"\u003e\u003ccode\u003e8a563d2\u003c/code\u003e\u003c/a\u003e feat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1b0f71a39b80c49f0fcbb9a41b54b5dfaff0c175\"\u003e\u003ccode\u003e1b0f71a\u003c/code\u003e\u003c/a\u003e Fix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/b51575a4b03dfd4c22da6b948dddb35e2a243bef\"\u003e\u003ccode\u003eb51575a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epost_execute_in_worker\u003c/code\u003e signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GDay/django-q2/compare/v1.9.0...v1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 1.2.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges since 1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers\nwhen cloning from a local repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing\n\u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/blob/main/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.1\t2026-04-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecover from concurrent pack removals (e.g. a racing \u003ccode\u003egit repack\u003c/code\u003e or\n\u003ccode\u003egit gc --auto\u003c/code\u003e) instead of raising spurious \u003ccode\u003eKeyError\u003c/code\u003e /\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003ePack.index\u003c/code\u003e and \u003ccode\u003ePack.data\u003c/code\u003e now translate\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e during lazy load into \u003ccode\u003ePackFileDisappeared\u003c/code\u003e,\nand \u003ccode\u003ePackBasedObjectStore\u003c/code\u003e evicts the stale pack and rescans the\npack directory before retrying — equivalent to git's\n\u003ccode\u003ereprepare_packed_git()\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers when\ncloning from a local repo. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing \u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/commit/57806b8a4d041cd18bf84ba8d715f4dd0bc5e200\"\u003e\u003ccode\u003e57806b8\u003c/code\u003e\u003c/a\u003e Release 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a127d330de1ef497935146bcd978211d9894787f\"\u003e\u003ccode\u003ea127d33\u003c/code\u003e\u003c/a\u003e Honor GIT_PROTOCOL env var when picking default protocol version (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2149\"\u003e#2149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6c1697a108757766aba71624422a93900f2a867a\"\u003e\u003ccode\u003e6c1697a\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6685fde81a717d91d747953c2f9277939ea5ab6b\"\u003e\u003ccode\u003e6685fde\u003c/code\u003e\u003c/a\u003e lfs: use pathlib.Path.as_uri() for portable file:// URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/0d0b9f8d205eb45660d81d1efc5b7ff1fc579e61\"\u003e\u003ccode\u003e0d0b9f8\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a0dac57db7ba8a6d9fe67d1cf4303cef306647a2\"\u003e\u003ccode\u003ea0dac57\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/cd6ebd90fc8f2f1b267db29c418c12c7ebb971a3\"\u003e\u003ccode\u003ecd6ebd9\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/bfaf192aaba90df54e4e7b07bba11a28cf36012b\"\u003e\u003ccode\u003ebfaf192\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/06d7afdeb87f742bdfff93563fd0acd042473b0a\"\u003e\u003ccode\u003e06d7afd\u003c/code\u003e\u003c/a\u003e Move GIT_SSH/GIT_SSH_COMMAND env lookup from client.py to cli.py (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2156\"\u003e#2156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/e60e0c1a4d44441d2f6edfc01ba5098d2ed24cf0\"\u003e\u003ccode\u003ee60e0c1\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-1.2.0...dulwich-1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `icalendar` from 7.0.3 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/collective/icalendar/releases\"\u003eicalendar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003cp\u003eTo view the changes, please see the \u003ca href=\"https://icalendar.readthedocs.io/en/latest/changelog.html\"\u003eChangelog\u003c/a\u003e. This release can be installed from \u003ca href=\"https://pypi.org/project/icalendar/#history\"\u003ePyPI\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/collective/icalendar/blob/main/CHANGES.rst\"\u003eicalendar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-04-30)\u003c/h2\u003e\n\u003cp\u003eMinor changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`\n- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`\n- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`\n- Make icalendar an explicit editable install for clarity. :pr:`1268`\n- Do not run some tests until a pull request is approved. :pr:`1246`\n- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`\n- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`\n- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`\n- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`\n- Add type hints to tests directory functions. :issue:`938`\n- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.\n\u003cp\u003eNew features\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`\n- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`\n- Added ``subcomponents`` parameter to :meth:`Component.new \u0026amp;lt;icalendar.cal.component.Component.new\u0026amp;gt;`, :meth:`Event.new \u0026amp;lt;icalendar.cal.event.Event.new\u0026amp;gt;`, :meth:`Todo.new \u0026amp;lt;icalendar.cal.todo.Todo.new\u0026amp;gt;`, and :meth:`Availability.new \u0026amp;lt;icalendar.cal.availability.Availability.new\u0026amp;gt;`. :issue:`1065`\n- Switch to uv for development. :issue:`1102`\n\nBug fixes\n~~~~~~~~~\n\n- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`\n- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnknown`. :issue:`1238`\n- Test that the ``DURATION`` property catches :class:`datetime.timedelta` objects without vProperty wrappers. :issue:`884`\n- Fixed :func:`~icalendar.attr.get_end_property` to avoid allowing the creating of VEVENT components with negative durations. Only VTODO components are allowed to have negative durations. :issue:`999`\n- GitHub Actions: conditional tests now show as \u0026amp;quot;skipped\u0026amp;quot; instead of \u0026amp;quot;pending\u0026amp;quot;. :issue:`1264`\n- Fixed :meth:`Component.__eq__ \u0026amp;lt;icalendar.cal.component.Component.__eq__\u0026amp;gt;` method not being commutative when comparing subcomponents. :issue:`1224`\n- Verified that the ``VALUE`` parameter of jCal components is used for the type of the component property. :issue:`1237`\n- Fix :func:`~icalendar.parser.string.escape_char` handling of ``bytes`` input by converting with :func:`icalendar.parser_tools.to_unicode` before escaping. :issue:`1226`\n- Fixed ``RecursionError`` in ``walk()``, ``property_items()``, and ``to_ical()`` by using iterative implementations for component traversal and property extraction. :pr:`1348`\n\nDocumentation\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;Convert docstring of :func:\u0026lt;code\u0026gt;~icalendar.param.string_parameter\u0026lt;/code\u0026gt; to Google style. :issue:\u0026lt;code\u0026gt;1072\u0026lt;/code\u0026gt;, :pr:\u0026lt;code\u0026gt;1316\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Run \u0026lt;code\u0026gt;sphinx-build\u0026lt;/code\u0026gt; with \u0026lt;code\u0026gt;-W\u0026lt;/code\u0026gt; to turn warnings into errors. :issue:\u0026lt;code\u0026gt;1306\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Added \u0026lt;code\u0026gt;sphinx-llms-txt \u0026amp;lt;https://sphinx-llms-txt.readthedocs.io/en/stable/\u0026amp;gt;\u0026lt;/code\u0026gt;_ extension to generate :file:\u0026lt;code\u0026gt;llms.txt\u0026lt;/code\u0026gt; and :file:\u0026lt;code\u0026gt;llms-full.txt\u0026lt;/code\u0026gt; files for AI/LLM documentation consumption. :issue:\u0026lt;code\u0026gt;1302\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Fixed CI Vale check reporting and resolved Vale errors. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Include :file:\u0026lt;code\u0026gt;Makefile\u0026lt;/code\u0026gt; in documentation workflow path filters so documentation CI runs when Makefile logic changes, and keep Vale failures visible in CI output. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1300b76fb3fe40d987cc3715735c026b3c1a2191\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1300b76\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into 7.x\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/255e6b841331e2d5cf2901402e08ab788899d465\u0026quot;\u0026gt;\u0026lt;code\u0026gt;255e6b8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; add 7.x to run the tests\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/fc8a4f5674eaa05bf3546b296f166583f670561a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;fc8a4f5\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; disable the version switcher on the 7.x branch\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/f5aa35d2ff6d106f5a7b286970b65b5f9d9211b4\u0026quot;\u0026gt;\u0026lt;code\u0026gt;f5aa35d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; version 7.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/b4ffb8345deea76e4cca72689907ed2f8488e7de\u0026quot;\u0026gt;\u0026lt;code\u0026gt;b4ffb83\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1348\u0026quot;\u0026gt;#1348\u0026lt;/a\u0026gt; from uwezkhan/fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1d6d18d357335367d72f4628b7158dd4800caf39\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1d6d18d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/05a34d48d3223b2780c9afffd0cdbab9d5c50ffd\u0026quot;\u0026gt;\u0026lt;code\u0026gt;05a34d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1346\u0026quot;\u0026gt;#1346\u0026lt;/a\u0026gt; from uwezkhan/fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/a4829d4d43b29e430b97ab66313f6357edd3742d\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a4829d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/66579fbf8fb4aeb6bf1ded0cfa353ba3d500e35a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;66579fb\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix formatting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1f55c2035315e53b8d9a6eeacf1aee046d794fd3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1f55c20\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/compare/v7.0.3...v7.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `importlib-metadata` from 8.7.1 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#110937\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/cpython/issues/140141\"\u003epython/cpython#140141\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/cpython/issues/143658\"\u003epython/cpython#143658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved Python 3.9 compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a5c2154835facb4a9d0a6f5b3aac1f3d1ff86170\"\u003e\u003ccode\u003ea5c2154\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e66e22634f7522e7778b66e8a8b19782a11d4943\"\u003e\u003ccode\u003ee66e226\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/6027933ae96c9e51dd0b7ce392cb30f6fcae1940\"\u003e\u003ccode\u003e6027933\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b89388a53bf857127e0a6860dfcfe2cd69a79ab8\"\u003e\u003ccode\u003eb89388a\u003c/code\u003e\u003c/a\u003e Import os_helper directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2dcb761d940b0115b786ab3b6f336af7d94630f4\"\u003e\u003ccode\u003e2dcb761\u003c/code\u003e\u003c/a\u003e Add uniform exclusions for test.support.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nh3` from 0.3.4 to 0.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/messense/nh3/releases\"\u003enh3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd usage examples for clean() and Cleaner arguments by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/120\"\u003emessense/nh3#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd doctest coverage for module docstrings and RST files by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/121\"\u003emessense/nh3#121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.28.2 to 0.28.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/messense/nh3/pull/123\"\u003emessense/nh3#123\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tags parameter to clean_text by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/122\"\u003emessense/nh3#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.4...v0.3.5\"\u003ehttps://github.com/messense/nh3/compare/v0.3.4...v0.3.5\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/messense/nh3/commit/9e78e6af74267c6789c62e98512460990415fb91\"\u003e\u003ccode\u003e9e78e6a\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/5225ec29f6ba74349d158676461fa6081cf804d8\"\u003e\u003ccode\u003e5225ec2\u003c/code\u003e\u003c/a\u003e Add tags parameter to clean_text (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/122\"\u003e#122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/129df5295dd98b263a3f24bd4f9bd5e43a7bb677\"\u003e\u003ccode\u003e129df52\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.2 to 0.28.3 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/25348dffb9f1373008a3f0f7d85f2ebb37883e07\"\u003e\u003ccode\u003e25348df\u003c/code\u003e\u003c/a\u003e Add doctest coverage for module docstrings and RST files (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/bf48b37d0b8e1e1bddc62ae058f880eae1a4abc2\"\u003e\u003ccode\u003ebf48b37\u003c/code\u003e\u003c/a\u003e Add usage examples for clean() and Cleaner arguments (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.4...v0.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-common` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\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/open-telemetry/opentelemetry-python/commit/760e0248edbd01ae817941c1dfa61c07241b0727\"\u003e\u003ccode\u003e760e024\u003c/code\u003e\u003c/a\u003e Prepare release 1.41.1/0.62b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/90e06bcd8c024a38ecf388c19c5a15fc094ea0ed\"\u003e\u003ccode\u003e90e06bc\u003c/code\u003e\u003c/a\u003e Unreleased changelog for 1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\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/open-telemetry/opentelemetry-python/commit/760e0248edbd01ae817941c1dfa61c07241b0727\"\u003e\u003ccode\u003e760e024\u003c/code\u003e\u003c/a\u003e Prepare release 1.41.1/0.62b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/90e06bcd8c024a38ecf388c19c5a15fc094ea0ed\"\u003e\u003ccode\u003e90e06bc\u003c/code\u003e\u003c/a\u003e Unreleased changelog for 1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-http` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-http's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-pytho...\n\n_Description has been truncated_","html_url":"https://github.com/inventree/InvenTree/pull/11899","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/inventree%2FInvenTree/issues/11899","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11899/packages"},{"uuid":"4404007221","node_id":"PR_kwDOLzxzKM7ZaFVT","number":323,"state":"open","title":"chore(deps): bump the dependencies group across 2 directories with 47 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["matmair"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-08T05:28:38.000Z","updated_at":"2026-05-08T05:31:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":47,"packages":[{"name":"bleach","old_version":"4.1.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"boto3","old_version":"1.42.87","new_version":"1.43.1","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.87","new_version":"1.43.1","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cryptography","old_version":"46.0.7","new_version":"47.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"django","old_version":"5.2.13","new_version":"6.0.4","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.14.3","new_version":"65.16.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-anymail","old_version":"14.0","new_version":"15.0","repository_url":"https://github.com/anymail/django-anymail"},{"name":"django-otp","old_version":"1.3.0","new_version":"1.7.0","repository_url":"https://github.com/django-otp/django-otp"},{"name":"dulwich","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fido2","old_version":"2.1.1","new_version":"2.2.0","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"icalendar","old_version":"7.0.3","new_version":"7.1.0","repository_url":"https://github.com/collective/icalendar"},{"name":"idna","old_version":"3.11","new_version":"3.13","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":"lxml","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/lxml/lxml"},{"name":"nh3","old_version":"0.3.4","new_version":"0.3.5","repository_url":"https://github.com/messense/nh3"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.34.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"s3transfer","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"tzdata","old_version":"2026.1","new_version":"2026.2","repository_url":"https://github.com/python/tzdata"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"zipp","old_version":"3.23.0","new_version":"3.23.1","repository_url":"https://github.com/jaraco/zipp"},{"name":"build","old_version":"1.4.2","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"click","old_version":"8.3.2","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"django-stubs","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"django-stubs-ext","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"django-types","old_version":"0.23.0","new_version":"0.24.0","repository_url":"https://github.com/sbdchd/django-types"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.18","new_version":"2.6.19","repository_url":"https://github.com/pre-commit/identify"},{"name":"pip","old_version":"26.0.1","new_version":"26.1","repository_url":"https://github.com/pypa/pip"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ty","old_version":"0.0.1a21","new_version":"0.0.33","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-psycopg2","old_version":"2.9.21.20260408","new_version":"2.9.21.20260422","repository_url":"https://github.com/python/typeshed"},{"name":"virtualenv","old_version":"21.2.1","new_version":"21.3.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wheel","old_version":"0.46.3","new_version":"0.47.0","repository_url":"https://github.com/pypa/wheel"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 1 update in the /docs directory: [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings).\nBumps the dependencies group with 46 updates in the /src/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.87` | `1.43.1` |\n| [botocore](https://github.com/boto/botocore) | `1.42.87` | `1.43.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `47.0.0` |\n| [django](https://github.com/django/django) | `5.2.13` | `6.0.4` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.14.3` | `65.16.1` |\n| [django-anymail](https://github.com/anymail/django-anymail) | `14.0` | `15.0` |\n| [django-otp](https://github.com/django-otp/django-otp) | `1.3.0` | `1.7.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `1.1.0` | `1.2.1` |\n| [fido2](https://github.com/Yubico/python-fido2) | `2.1.1` | `2.2.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.0.3` | `7.1.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.3` | `6.1.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.4` | `0.3.5` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.58.0` |\n| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.2` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.23.0` | `3.23.1` |\n| [build](https://github.com/pypa/build) | `1.4.2` | `1.5.0` |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.3.3` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.2` | `6.0.3` |\n| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.0.2` | `6.0.3` |\n| [django-types](https://github.com/sbdchd/django-types) | `0.23.0` | `0.24.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |\n| [pip](https://github.com/pypa/pip) | `26.0.1` | `26.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.3.0` | `4.5.0` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a21` | `0.0.33` |\n| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260408` | `2.9.21.20260422` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.1` | `21.3.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.3` | `0.47.0` |\n\n\nUpdates `mkdocstrings` from 1.0.3 to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4\"\u003e1.0.4\u003c/a\u003e - 2026-04-15\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4\"\u003eCompare with 1.0.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd timeout when downloading inventories (10 seconds) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd\"\u003e3d1969a\u003c/a\u003e by Simon Lloyd). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/819\"\u003eIssue-819\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4\"\u003e1.0.4\u003c/a\u003e - 2026-04-15\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4\"\u003eCompare with 1.0.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd timeout when downloading inventories (10 seconds) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd\"\u003e3d1969a\u003c/a\u003e by Simon Lloyd). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/819\"\u003eIssue-819\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/mkdocstrings/mkdocstrings/commit/a938528b51b42cde52465d06d8b1a52484837366\"\u003e\u003ccode\u003ea938528\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/1eaa2242ec33e4b6ce666f0bbc25391f2a72c1d2\"\u003e\u003ccode\u003e1eaa224\u003c/code\u003e\u003c/a\u003e ci: Lint and type-check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/80e090d0bfbfa5688639e78559a4bb7bd3f7a55b\"\u003e\u003ccode\u003e80e090d\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/mkdocstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/5f82a5822c50dc928ee4a133c1445543d3afa393\"\u003e\u003ccode\u003e5f82a58\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd\"\u003e\u003ccode\u003e3d1969a\u003c/code\u003e\u003c/a\u003e fix: Add timeout when downloading inventories (10 seconds)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/a0c47b9992416cf02b8dfc7a76a6c5503e98cd9c\"\u003e\u003ccode\u003ea0c47b9\u003c/code\u003e\u003c/a\u003e docs: Fix broken link in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/e500a2b416656ede76aac316304415e428dd0aa1\"\u003e\u003ccode\u003ee500a2b\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bleach` from 4.1.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.87 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/753bcab42942e4e0f6e3deb5e4eb5af40d0ffb8b\"\u003e\u003ccode\u003e753bcab\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dd5b3a659894c0c8c92c4c696625fe7735fddcb1\"\u003e\u003ccode\u003edd5b3a6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014f4adb1a991f5575fca9688568a388e9f0d339\"\u003e\u003ccode\u003e014f4ad\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/32edf1c268b58c8e16e144271252ce90ebfdc1ef\"\u003e\u003ccode\u003e32edf1c\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4781\"\u003e#4781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/959ae842a0048833cab303e1cf88dfc523f604b1\"\u003e\u003ccode\u003e959ae84\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/146ede25caacdfdc8bff79cc8f5028292dfe41f6\"\u003e\u003ccode\u003e146ede2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/048bf84492d9d55b327a67f4ab07476eb62c2ee1\"\u003e\u003ccode\u003e048bf84\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/20381d5695aa766f041b42dcda9600e14f32bd15\"\u003e\u003ccode\u003e20381d5\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ee6aa9711b74b165eac0b26bb724c7326791dc24\"\u003e\u003ccode\u003eee6aa97\u003c/code\u003e\u003c/a\u003e Deprecate Python 3.9 support (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1780d6b791333f1279e03a04a2efc476af2af5d9\"\u003e\u003ccode\u003e1780d6b\u003c/code\u003e\u003c/a\u003e Remove CC-BY-NC-SA-4.0 license headers from docs files (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4778\"\u003e#4778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.87...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.87 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7084f04c816749a7275317441440f3705ec25cf4\"\u003e\u003ccode\u003e7084f04\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1dd07e0619e1c4d7eaa5443e7a28667f7b0a5431\"\u003e\u003ccode\u003e1dd07e0\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/eebf8158db41450f23ae0365dcbb3d8671311490\"\u003e\u003ccode\u003eeebf815\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/98952d24c3e7cecd87b48f717c358ab526f065b0\"\u003e\u003ccode\u003e98952d2\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/33559569fbb76b88e23f9e7be870be028e44a45e\"\u003e\u003ccode\u003e3355956\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/05dafea17e8a7758d0099d11ef573b8a62c413bf\"\u003e\u003ccode\u003e05dafea\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/dc9312350d2bf85ec07d0f7d27cd77c96fc8b5a1\"\u003e\u003ccode\u003edc93123\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/047f23f3b089f10c098010d41e0c355cc13a92be\"\u003e\u003ccode\u003e047f23f\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/44df5850e51fe566075fd5ecd3a8a512aedec47a\"\u003e\u003ccode\u003e44df585\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/924fe63134e9608c083b298a9e3007d64453e27e\"\u003e\u003ccode\u003e924fe63\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.87...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\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.7 to 47.0.0\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\u003e47.0.0 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Support for Python 3.8 is deprecated and will be removed in the next\n  ``cryptography`` release.\n* **BACKWARDS INCOMPATIBLE:** Support for binary elliptic curves\n  (``SECT*`` classes) has been removed. These curves are rarely used and\n  have additional security considerations that make them undesirable.\n* **BACKWARDS INCOMPATIBLE:** Support for OpenSSL 1.1.x has been removed.\n  OpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC\n  continue to be supported.\n* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL \u0026lt; 4.1.\n* **BACKWARDS INCOMPATIBLE:** Loading keys with unsupported algorithms or\n  keys with unsupported explicit curve encodings now raises\n  :class:`~cryptography.exceptions.UnsupportedAlgorithm` instead of\n  ``ValueError``. This change affects\n  :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`,\n  :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`,\n  :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`,\n  :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`,\n  and :meth:`~cryptography.x509.Certificate.public_key` when called on\n  certificates with unsupported public key algorithms.\n* **BACKWARDS INCOMPATIBLE:** When parsing elliptic curve private keys, we now\n  reject keys that incorrectly encode a private key of the wrong length because\n  such keys are impossible to process in a constant-time manner. We do not\n  believe keys with this problem are in wide use, however we may revert this\n  change based on the feedback we receive.\n* Deprecated passing 64-bit (8-byte) and 128-bit (16-byte) keys to\n  :class:`~cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES`. In a\n  future release, only 192-bit (24-byte) keys will be accepted. Users should\n  expand shorter keys themselves (e.g., for single DES: ``key + key + key``,\n  for two-key: ``key + key[:8]``).\n* Updated the minimum supported Rust version (MSRV) to 1.83.0, from 1.74.0.\n* Support for ``x86_64`` macOS (including publishing wheels) is deprecated\n  and will be removed in the next release. We will switch to publishing an\n  ``arm64`` only wheel for macOS.\n* Support for 32-bit Windows (including publishing wheels) is deprecated\n  and will be removed in the next release. Users should move to a 64-bit\n  Python installation.\n* ``public_bytes`` and ``private_bytes`` methods on keys now raise\n  ``TypeError`` (instead of ``ValueError``) if an invalid encoding is provided\n  for the given ``format``.\n* Moved :class:`~cryptography.hazmat.decrepit.ciphers.modes.CFB`,\n  :class:`~cryptography.hazmat.decrepit.ciphers.modes.OFB`, and\n  :class:`~cryptography.hazmat.decrepit.ciphers.modes.CFB8` into\n  :doc:`/hazmat/decrepit/index` and deprecated them in the ``modes`` module.\n  They will be removed from the ``modes`` module in 49.0.0.\n* Moved :class:`~cryptography.hazmat.primitives.ciphers.algorithms.Camellia`\n  into  :doc:`/hazmat/decrepit/index` and deprecated it in the ``cipher`` module.\n  It will be removed from the ``cipher`` module in 49.0.0.\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/pyca/cryptography/commit/59c5f5e4b9395f32d407f66467d59ccea9f9829f\"\u003e\u003ccode\u003e59c5f5e\u003c/code\u003e\u003c/a\u003e bump for 47.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14730\"\u003e#14730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/9025578c87f14096f9332264881f5370a1c64e93\"\u003e\u003ccode\u003e9025578\u003c/code\u003e\u003c/a\u003e Add MLKEM1024-P384 hybrid KEM support in HPKE (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14722\"\u003e#14722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ef66de49e0bd281da86750178ab2fb4b5b104162\"\u003e\u003ccode\u003eef66de4\u003c/code\u003e\u003c/a\u003e Recommend Argon2id over PBKDF2HMAC as KDF (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14724\"\u003e#14724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/d996a37666524c606419e71de15eb527bae655aa\"\u003e\u003ccode\u003ed996a37\u003c/code\u003e\u003c/a\u003e Add ubuntu-resolute to CI workflow (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14729\"\u003e#14729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e86da41ff7e21a04529a933856dc27dacd9e7fc0\"\u003e\u003ccode\u003ee86da41\u003c/code\u003e\u003c/a\u003e chore(deps): bump libc from 0.2.185 to 0.2.186 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14725\"\u003e#14725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/1c33c9a5d96a7b1a975ab5a465a75517e0ebadd6\"\u003e\u003ccode\u003e1c33c9a\u003c/code\u003e\u003c/a\u003e Bump downstream dependencies in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14728\"\u003e#14728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67fb6be685bbc0952a47cf18e9ee4533b411cd8b\"\u003e\u003ccode\u003e67fb6be\u003c/code\u003e\u003c/a\u003e Bump x509-limbo and/or wycheproof in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14727\"\u003e#14727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6cb20b3141c6391ae11075f30b992375c05adad5\"\u003e\u003ccode\u003e6cb20b3\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14726\"\u003e#14726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/d6f372d7ea7f7df96aeda240252a23b6ed46bc71\"\u003e\u003ccode\u003ed6f372d\u003c/code\u003e\u003c/a\u003e Update supported OpenSSL versions in installation docs (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14721\"\u003e#14721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ebd26194cd6a3315b122a44d2ee5aeb138bee55b\"\u003e\u003ccode\u003eebd2619\u003c/code\u003e\u003c/a\u003e openssl 3.3 is out of upstream support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14720\"\u003e#14720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.7...47.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.2.13 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/141e791f48592011b0f38fb30d44291e3ce74ee0\"\u003e\u003ccode\u003e141e791\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.4 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/393dbc53e848876fdba92fbf02e10ee6a6eace6b\"\u003e\u003ccode\u003e393dbc5\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-33034 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE on body ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0910af60468216c856dfbcac1177372c225deb76\"\u003e\u003ccode\u003e0910af6\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/428c48f358c5a0ed5ca2834fb721d615eb2b0e11\"\u003e\u003ccode\u003e428c48f\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-4292 -- Disallowed instance creation via ModelAdmin.li...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/08a752c1cd8f378b4c64d96c319da23726df6ed3\"\u003e\u003ccode\u003e08a752c\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-4277 -- Checked add permissions in GenericInlineModelA...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a623c3982857e80324448f85c7faf9a6710330ef\"\u003e\u003ccode\u003ea623c39\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-3902 -- Ignored headers with underscores in ASGIRequest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ffc83c554a7bc99e138445fa2c4beaf0ca17c71c\"\u003e\u003ccode\u003effc83c5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36949\"\u003e#36949\u003c/a\u003e -- Removed hardcoded pks in modeladmin tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4eb38f6994f233feeac5852cbee2ae6663a9b1ef\"\u003e\u003ccode\u003e4eb38f6\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36973\"\u003e#36973\u003c/a\u003e -- Made fields.E348 check detect further clashes between...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/640c431a47c4075538e1de0211501f911346b65e\"\u003e\u003ccode\u003e640c431\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36862\"\u003e#36862\u003c/a\u003e -- Reiterated security note on both variants of RemoteUse...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ea8e293fda0dd1e78f5489efa73e5d19e195b4f0\"\u003e\u003ccode\u003eea8e293\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36949\"\u003e#36949\u003c/a\u003e -- Improved RelatedFieldWidgetWrapper \u0026lt;label\u0026gt;s.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.13...6.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.14.3 to 65.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-anymail` from 14.0 to 15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anymail/django-anymail/releases\"\u003edjango-anymail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://anymail.dev/en/stable/changelog/#v15-0\"\u003eChangelog\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/anymail/django-anymail/blob/main/CHANGELOG.rst\"\u003edjango-anymail's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-04-18\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Require **Django 5.0 or later** and Python 3.10 or later.\n  (Thanks to `@terencehonles`_.)\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **Resend:** Add support for inbound email. (Thanks to `@btimby`_.)\n\nFixes\n~~~~~\n\n* **Inbound:** Convert carriage return and line feed characters in attachment\n  filenames to spaces for ESPs that parse them from invalid headers (e.g.,\n  Postmark). (Thanks to `@BHSPitMonkey`_ for reporting the issue and providing\n  an example.)\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/17acea06b9361c3cc4ab6d9678bd5aea45db80ff\u0026quot;\u0026gt;\u0026lt;code\u0026gt;17acea0\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Release 15.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/8ad9d6e7e463efb770e3440871a05f2be4249ddf\u0026quot;\u0026gt;\u0026lt;code\u0026gt;8ad9d6e\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Inbound: sanitize CRNL in ESP-parsed attachment filenames\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/a6339d6c65bed21bcfe28e3c7b9b4ada4a290263\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a6339d6\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Upgrade actions versions\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/4626462d49512b0c423071a8a6fe43a9610ead8a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;4626462\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Drop Django 4.x\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/2bcfd620d2f1fa6705a13ad8645aa25a4572fd08\u0026quot;\u0026gt;\u0026lt;code\u0026gt;2bcfd62\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Resend: Add inbound support\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/13a08718571ca853f04336e15c525a98dd6dc48a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;13a0871\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Run pyupgrade\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/7bf7a1a42e7fe1dbc008d22dc6d03579e4523b34\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7bf7a1a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Drop Django 4.0--4.2, Python 3.8--3.9 support\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;See full diff in \u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/compare/v14.0...v15.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `django-otp` from 1.3.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-otp/django-otp/blob/master/CHANGES.rst\"\u003edjango-otp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - January 07, 2026 - Async support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#185](https://github.com/django-otp/django-otp/issues/185)\u003c/code\u003e_: Make OTPMiddleware async capable\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Aljosha Papsch.\u003c/p\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/185\"\u003edjango-otp/django-otp#185\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.3 - October 25, 2025 - Spanish update\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#182](https://github.com/django-otp/django-otp/issues/182)\u003c/code\u003e_: Correct missing Spanish translations\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#181](https://github.com/django-otp/django-otp/issues/181)\u003c/code\u003e_: Wrong :rtype: in StaticToken.random_token docstring\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003edjango-otp/django-otp#181\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/182\"\u003e#182\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/182\"\u003edjango-otp/django-otp#182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.2 - October 21, 2025 - Cleanup\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#179](https://github.com/django-otp/django-otp/issues/179)\u003c/code\u003e_: Add missing gettext strings\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#180](https://github.com/django-otp/django-otp/issues/180)\u003c/code\u003e_: Remove tests from wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/179\"\u003e#179\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/179\"\u003edjango-otp/django-otp#179\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/180\"\u003e#180\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/180\"\u003edjango-otp/django-otp#180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.1 - July 08, 2025 - Small improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow a {token} placeholder in :setting:\u003ccode\u003eOTP_EMAIL_SUBJECT\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 - April 02, 2025 - Django 5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate test matrix for Django 5.2.\u003c/li\u003e\n\u003cli\u003eRemove support for Django 3.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.5.4 - September 06, 2024 - Ignore proxy models when enumerating device classes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#161](https://github.com/django-otp/django-otp/issues/161)\u003c/code\u003e_: Discard proxied models when iterating device models\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/161\"\u003e#161\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/161\"\u003edjango-otp/django-otp#161\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/django-otp/django-otp/commit/fc0d50b6f66da10fad250ce1640f0385f3229f48\"\u003e\u003ccode\u003efc0d50b\u003c/code\u003e\u003c/a\u003e Version 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/56e4ce3b5618de5d5a8a24c9eb709b51802ad06b\"\u003e\u003ccode\u003e56e4ce3\u003c/code\u003e\u003c/a\u003e Refactor test utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/8c4d4c23649316c55dad6a79fb06fa975e5e4702\"\u003e\u003ccode\u003e8c4d4c2\u003c/code\u003e\u003c/a\u003e Update test matrix for Django 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/0ac4ff33aa88fa73c12aa60713881481116a6d5f\"\u003e\u003ccode\u003e0ac4ff3\u003c/code\u003e\u003c/a\u003e Cleanup and changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b10df0d8cb94c8242ca48bbcea3d307b553808a5\"\u003e\u003ccode\u003eb10df0d\u003c/code\u003e\u003c/a\u003e Make OTPMiddleware async capable. (\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/81211794b8cc9c8befc6c8330b6652d3c4e78fd5\"\u003e\u003ccode\u003e8121179\u003c/code\u003e\u003c/a\u003e Raise requires-python to 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/38b7ebabd7b4817aec92f884d448eeb462e82108\"\u003e\u003ccode\u003e38b7eba\u003c/code\u003e\u003c/a\u003e Version 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b9026d7025da45b0144c99e91b5286c734448012\"\u003e\u003ccode\u003eb9026d7\u003c/code\u003e\u003c/a\u003e Correct Missing Spanish Translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/ae18ba95bd03534e15583d456572f86ea2f41442\"\u003e\u003ccode\u003eae18ba9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: misdocumented return type.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/c9eef89240985293e0c9f197d0257a5352cfb62d\"\u003e\u003ccode\u003ec9eef89\u003c/code\u003e\u003c/a\u003e Version 1.6.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-otp/django-otp/compare/v1.3.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 1.1.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges since 1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers\nwhen cloning from a local repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing\n\u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0\u003c/h2\u003e\n\u003ch2\u003eNotable changes since 1.1.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eam\u003c/code\u003e command and \u003ccode\u003eporcelain.am()\u003c/code\u003e for applying mailbox-style email patches (\u003ccode\u003egit am\u003c/code\u003e), with state persistence for \u003ccode\u003e--continue\u003c/code\u003e, \u003ccode\u003e--skip\u003c/code\u003e, \u003ccode\u003e--abort\u003c/code\u003e, and \u003ccode\u003e--quit\u003c/code\u003e recovery (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1692\"\u003e#1692\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eapply\u003c/code\u003e command and \u003ccode\u003eporcelain.apply_patch()\u003c/code\u003e for applying unified diffs, including rename/copy detection, binary patches with Git's base85 encoding, and \u003ccode\u003e--3way\u003c/code\u003e merge fallback (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1784\"\u003e#1784\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003elog\u003c/code\u003e command options: \u003ccode\u003e--oneline\u003c/code\u003e, \u003ccode\u003e--abbrev-commit\u003c/code\u003e, \u003ccode\u003e--author\u003c/code\u003e, \u003ccode\u003e--committer\u003c/code\u003e, \u003ccode\u003e--grep\u003c/code\u003e, \u003ccode\u003e--since\u003c/code\u003e/\u003ccode\u003e--after\u003c/code\u003e, \u003ccode\u003e--until\u003c/code\u003e/\u003ccode\u003e--before\u003c/code\u003e, \u003ccode\u003e-n\u003c/code\u003e/\u003ccode\u003e--max-count\u003c/code\u003e, \u003ccode\u003e--no-merges\u003c/code\u003e, \u003ccode\u003e--merges\u003c/code\u003e, \u003ccode\u003e--stat\u003c/code\u003e, \u003ccode\u003e-p\u003c/code\u003e/\u003ccode\u003e--patch\u003c/code\u003e, \u003ccode\u003e--name-only\u003c/code\u003e, and \u003ccode\u003e--follow\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1779\"\u003e#1779\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for push options (\u003ccode\u003e-o\u003c/code\u003e/\u003ccode\u003e--push-option\u003c/code\u003e) in \u003ccode\u003epush\u003c/code\u003e, enabling AGit flow and other server-side push option workflows.\u003c/li\u003e\n\u003cli\u003eAdd missing push options: \u003ccode\u003e--all\u003c/code\u003e, \u003ccode\u003e--tags\u003c/code\u003e, \u003ccode\u003e--delete\u003c/code\u003e, \u003ccode\u003e--dry-run\u003c/code\u003e, \u003ccode\u003e--prune\u003c/code\u003e, \u003ccode\u003e--set-upstream\u003c/code\u003e, \u003ccode\u003e--follow-tags\u003c/code\u003e, and \u003ccode\u003e--mirror\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1844\"\u003e#1844\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for atomic push operations (\u003ccode\u003e--atomic\u003c/code\u003e): either all ref updates succeed or none are applied (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1781\"\u003e#1781\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eextensions.relativeworktrees\u003c/code\u003e repository extension, allowing worktrees to use relative paths (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2112\"\u003e#2112\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egc.pruneExpire\u003c/code\u003e — grace period before unreachable objects are pruned (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1859\"\u003e#1859\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.precomposeunicode\u003c/code\u003e — normalize NFD Unicode paths from macOS filesystems to NFC (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1804\"\u003e#1804\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.gitProxy\u003c/code\u003e — proxy command for \u003ccode\u003egit://\u003c/code\u003e protocol connections (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1850\"\u003e#1850\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.maxStat\u003c/code\u003e — limit stat operations when checking for unstaged changes (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1853\"\u003e#1853\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.packedGitLimit\u003c/code\u003e — cap memory used for mmapped pack files, closing LRU packs when exceeded (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1848\"\u003e#1848\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.deltaBaseCacheLimit\u003c/code\u003e — cap memory used for caching delta base objects; defaults to 96 MiB (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1849\"\u003e#1849\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehttp.userAgent\u003c/code\u003e — customize the User-Agent header (global and URL-specific); default is \u003ccode\u003egit/dulwich/{version}\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GPG signature verification to raise \u003ccode\u003eBadSignature\u003c/code\u003e for all GPG errors, not just \u003ccode\u003eBadSignatures\u003c/code\u003e; also detect when GPG returns no signatures.\u003c/li\u003e\n\u003cli\u003eFix client incorrectly sending \u003ccode\u003eunborn\u003c/code\u003e argument in Git protocol v2 \u003ccode\u003els-refs\u003c/code\u003e requests to servers that don't advertise \u003ccode\u003els-refs=unborn\u003c/code\u003e, preventing clones from older servers like Gerrit 3.12.2 (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2104\"\u003e#2104\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove error message in \u003ccode\u003eread_info_refs()\u003c/code\u003e to show the actual line content when parsing fails (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2103\"\u003e#2103\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePreserve quoted trailing whitespace in config values (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2145\"\u003e#2145\u003c/a\u003e, Christopher Toth).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e.gitignore\u003c/code\u003e parent re-include handling so a later \u003ccode\u003e!dir/\u003c/code\u003e re-include allows a subsequent file-level negation to take effect (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2141\"\u003e#2141\u003c/a\u003e, N0zoM1z0).\u003c/li\u003e\n\u003cli\u003eFix host key verification in \u003ccode\u003econtrib/paramiko_vendor.py\u003c/code\u003e by loading known hosts and rejecting unknown SSH host keys by default (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2123\"\u003e#2123\u003c/a\u003e, quart27219).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jelmer/dulwich/blob/main/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.1\t2026-04-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecover from concurrent pack removals (e.g. a racing \u003ccode\u003egit repack\u003c/code\u003e or\n\u003ccode\u003egit gc --auto\u003c/code\u003e) instead of raising spurious \u003ccode\u003eKeyError\u003c/code\u003e /\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003ePack.index\u003c/code\u003e and \u003ccode\u003ePack.data\u003c/code\u003e now translate\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e during lazy load into \u003ccode\u003ePackFileDisappeared\u003c/code\u003e,\nand \u003ccode\u003ePackBasedObjectStore\u003c/code\u003e evicts the stale pack and rescans the\npack directory before retrying — equivalent to git's\n\u003ccode\u003ereprepare_packed_git()\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers when\ncloning from a local repo. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing \u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.2.0\t2026-04-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect the \u003ccode\u003eGIT_PROTOCOL\u003c/code\u003e environment variable when choosing the\ndefault Git wire protocol version to send. Colon-separated\n\u003ccode\u003eversion=N\u003c/code\u003e entries are parsed and applied when no explicit\n\u003ccode\u003eprotocol_version\u003c/code\u003e is passed. (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpand \u003ccode\u003elog\u003c/code\u003e command options: add \u003ccode\u003e--oneline\u003c/code\u003e, \u003ccode\u003e--abbrev-commit\u003c/code\u003e,\n\u003ccode\u003e--author\u003c/code\u003e, \u003ccode\u003e--committer\u003c/code\u003e, \u003ccode\u003e--grep\u003c/code\u003e, \u003ccode\u003e--since\u003c/code\u003e/\u003ccode\u003e--after\u003c/code\u003e,\n\u003ccode\u003e--until\u003c/code\u003e/\u003ccode\u003e--before\u003c/code\u003e, \u003ccode\u003e-n\u003c/code\u003e/\u003ccode\u003e--max-count\u003c/code\u003e, \u003ccode\u003e--no-merges\u003c/code\u003e,\n\u003ccode\u003e--merges\u003c/code\u003e, \u003ccode\u003e--stat\u003c/code\u003e, \u003ccode\u003e-p\u003c/code\u003e/\u003ccode\u003e--patch\u003c/code\u003e, \u003ccode\u003e--name-only\u003c/code\u003e,\nand \u003ccode\u003e--follow\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1779\"\u003e#1779\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eam\u003c/code\u003e command and \u003ccode\u003eporcelain.am()\u003c/code\u003e for applying mailbox-style\nemail patches (\u003ccode\u003egit am\u003c/code\u003e), with state persistence for\n\u003ccode\u003e--continue\u003c/code\u003e, \u003ccode\u003e--skip\u003c/code\u003e, \u003ccode\u003e--abort\u003c/code\u003e, and \u003ccode\u003e--quit\u003c/code\u003e recovery\noperations. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1692\"\u003e#1692\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for \u003ccode\u003eextensions.relativeworktrees\u003c/code\u003e repository extension,\nallowing Git worktrees to use relative paths instead of absolute paths\nwhen linking worktrees. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2112\"\u003e#2112\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for push options (\u003ccode\u003e-o\u003c/code\u003e/\u003ccode\u003e--push-option\u003c/code\u003e) in the \u003ccode\u003epush\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/57806b8a4d041cd18bf84ba8d715f4dd0bc5e200\"\u003e\u003ccode\u003e57806b8\u003c/code\u003e\u003c/a\u003e Release 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a127d330de1ef497935146bcd978211d9894787f\"\u003e\u003ccode\u003ea127d33\u003c/code\u003e\u003c/a\u003e Honor GIT_PROTOCOL env var when picking default protocol version (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2149\"\u003e#2149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6c1697a108757766aba71624422a93900f2a867a\"\u003e\u003ccode\u003e6c1697a\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6685fde81a717d91d747953c2f9277939ea5ab6b\"\u003e\u003ccode\u003e6685fde\u003c/code\u003e\u003c/a\u003e lfs: use pathlib.Path.as_uri() for portable file:// URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/0d0b9f8d205eb45660d81d1efc5b7ff1fc579e61\"\u003e\u003ccode\u003e0d0b9f8\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a0dac57db7ba8a6d9fe67d1cf4303cef306647a2\"\u003e\u003ccode\u003ea0dac57\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/cd6ebd90fc8f2f1b267db29c418c12c7ebb971a3\"\u003e\u003ccode\u003ecd6ebd9\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/bfaf192aaba90df54e4e7b07bba11a28cf36012b\"\u003e\u003ccode\u003ebfaf192\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/06d7afdeb87f742bdfff93563fd0acd042473b0a\"\u003e\u003ccode\u003e06d7afd\u003c/code\u003e\u003c/a\u003e Move GIT_SSH/GIT_SSH_COMMAND env lookup from client.py to cli.py (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2156\"\u003e#2156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/e60e0c1a4d44441d2f6edfc01ba5098d2ed24cf0\"\u003e\u003ccode\u003ee60e0c1\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-1.1.0...dulwich-1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 2.1.1 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.2.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.2.0 (released 2026-04-15)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestrict DLL search paths (YSA-2026-01).\u003c/li\u003e\n\u003cli\u003eAdd support for experimental previewSign extension: \u003ca href=\"https://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\"\u003ehttps://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PSL wildcard and exception rules to RP validation.\u003c/li\u003e\n\u003cli\u003eFix: WindowsClient hmac_secret extension raising Null pointer access error.\u003c/li\u003e\n\u003cli\u003eFix: TPM attestation certificate Subject field validation.\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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eVersion 2.2.0 (released 2026-04-15)\n** Restrict DLL search paths (YSA-2026-01).\n** Add support for experimental previewSign extension:\n\u003ca href=\"https://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\"\u003ehttps://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\u003c/a\u003e\n** Add support for PSL wildcard and exception rules to RP validation.\n** Fix: WindowsClient hmac_secret extension raising Null pointer access error.\n** Fix: TPM attestation certificate Subject field validation.\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/Yubico/python-fido2/commit/176ba47e58ae1d2837d615bfd471de45eb9af97a\"\u003e\u003ccode\u003e176ba47\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/dbacb5284de2cb145f538b1bad56ece0dfcf877e\"\u003e\u003ccode\u003edbacb52\u003c/code\u003e\u003c/a\u003e Restrict DLL loading to System32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/000e26b2174b8753735bde5df55923d8db55cc14\"\u003e\u003ccode\u003e000e26b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/4f473784676405c90c3f1b96c5416f77b6e9e7d4\"\u003e\u003ccode\u003e4f47378\u003c/code\u003e\u003c/a\u003e Bump example dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e095fc4d930eb24947075d2ab93f5cf92892e6ee\"\u003e\u003ccode\u003ee095fc4\u003c/code\u003e\u003c/a\u003e Pass ClientPin.PERMISSIONS when 0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/cd5fe1fa882fa8c7809c9bd9ac7f822919063ee7\"\u003e\u003ccode\u003ecd5fe1f\u003c/code\u003e\u003c/a\u003e Use constant_time for consistency.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/19cba78e03fe65824b4fabfa2b3a86da224b83db\"\u003e\u003ccode\u003e19cba78\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/285\"\u003e#285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/84edc052c1ce7f8ecd70cf9a2c211454c5053457\"\u003e\u003ccode\u003e84edc05\u003c/code\u003e\u003c/a\u003e Add ARKG sign extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/6430bf946987f53f67725a85fce61a1609296370\"\u003e\u003ccode\u003e6430bf9\u003c/code\u003e\u003c/a\u003e Windows: Check that pHmacSecret is populated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/efb81ef0bbb44f07cfe18071e2c9286fe69d4163\"\u003e\u003ccode\u003eefb81ef\u003c/code\u003e\u003c/a\u003e More type checking for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/2.1.1...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `icalendar` from 7.0.3 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/collective/icalendar/releases\"\u003eicalendar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003cp\u003eTo view the changes, please see the \u003ca href=\"https://icalendar.readthedocs.io/en/latest/changelog.html\"\u003eChangelog\u003c/a\u003e. This release can be installed from \u003ca href=\"https://pypi.org/project/icalendar/#history\"\u003ePyPI\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/collective/icalendar/blob/main/CHANGES.rst\"\u003eicalendar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-04-30)\u003c/h2\u003e\n\u003cp\u003eMinor changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`\n- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`\n- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`\n- Make icalendar an explicit editable install for clarity. :pr:`1268`\n- Do not run some tests until a pull request is approved. :pr:`1246`\n- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`\n- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`\n- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`\n- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`\n- Add type hints to tests directory functions. :issue:`938`\n- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.\n\u003cp\u003eNew features\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`\n- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`\n- Added ``subcomponents`` parameter to :meth:`Component.new \u0026amp;lt;icalendar.cal.component.Component.new\u0026amp;gt;`, :meth:`Event.new \u0026amp;lt;icalendar.cal.event.Event.new\u0026amp;gt;`, :meth:`Todo.new \u0026amp;lt;icalendar.cal.todo.Todo.new\u0026amp;gt;`, and :meth:`Availability.new \u0026amp;lt;icalendar.cal.availability.Availability.new\u0026amp;gt;`. :issue:`1065`\n- Switch to uv for development. :issue:`1102`\n\nBug fixes\n~~~~~~~~~\n\n- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`\n- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnknown`. :issue:`1238`\n- Test that the ``DURATION`` property catches :class:`datetime.timedelta` objects without vProperty wrappers. :issue:`884`\n- Fixed :func:`~icalendar.attr.get_end_property` to avoid allowing the creating of VEVENT components with negative durations. Only VTODO components are allowed to have negative durations. :issue:`999`\n- GitHub Actions: conditional tests now show as \u0026amp;quot;skipped\u0026amp;quot; instead of \u0026amp;quot;pending\u0026amp;quot;. :issue:`1264`\n- Fixed :meth:`Component.__eq__ \u0026amp;lt;icalendar.cal.component.Component.__eq__\u0026amp;gt;` method not being commutative when comparing subcomponents. :issue:`1224`\n- Verified that the ``VALUE`` parameter of jCal components is used for the type of the component property. :issue:`1237`\n- Fix :func:`~icalendar.parser.string.escape_char` handling of ``bytes`` input by converting with :func:`icalendar.parser_tools.to_unicode` before escaping. :issue:`1226`\n- Fixed ``RecursionError`` in ``walk()``, ``property_items()``, and ``to_ical()`` by using iterative implementations for component traversal and property extraction. :pr:`1348`\n\nDocumentation\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;Convert docstring of :func:\u0026lt;code\u0026gt;~icalendar.param.string_parameter\u0026lt;/code\u0026gt; to Google style. :issue:\u0026lt;code\u0026gt;1072\u0026lt;/code\u0026gt;, :pr:\u0026lt;code\u0026gt;1316\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Run \u0026lt;code\u0026gt;sphinx-build\u0026lt;/code\u0026gt; with \u0026lt;code\u0026gt;-W\u0026lt;/code\u0026gt; to turn warnings into errors. :issue:\u0026lt;code\u0026gt;1306\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Added \u0026lt;code\u0026gt;sphinx-llms-txt \u0026amp;lt;https://sphinx-llms-txt.readthedocs.io/en/stable/\u0026amp;gt;\u0026lt;/code\u0026gt;_ extension to generate :file:\u0026lt;code\u0026gt;llms.txt\u0026lt;/code\u0026gt; and :file:\u0026lt;code\u0026gt;llms-full.txt\u0026lt;/code\u0026gt; files for AI/LLM documentation consumption. :issue:\u0026lt;code\u0026gt;1302\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Fixed CI Vale check reporting and resolved Vale errors. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Include :file:\u0026lt;code\u0026gt;Makefile\u0026lt;/code\u0026gt; in documentation workflow path filters so documentation CI runs when Makefile logic changes, and keep Vale failures visible in CI output. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1300b76fb3fe40d987cc3715735c026b3c1a2191\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1300b76\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into 7.x\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/255e6b841331e2d5cf2901402e08ab788899d465\u0026quot;\u0026gt;\u0026lt;code\u0026gt;255e6b8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; add 7.x to run the tests\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/fc8a4f5674eaa05bf3546b296f166583f670561a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;fc8a4f5\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; disable the version switcher on the 7.x branch\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/f5aa35d2ff6d106f5a7b286970b65b5f9d9211b4\u0026quot;\u0026gt;\u0026lt;code\u0026gt;f5aa35d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; version 7.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/b4ffb8345deea76e4cca72689907ed2f8488e7de\u0026quot;\u0026gt;\u0026lt;code\u0026gt;b4ffb83\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1348\u0026quot;\u0026gt;#1348\u0026lt;/a\u0026gt; from uwezkhan/fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1d6d18d357335367d72f4628b7158dd4800caf39\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1d6d18d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/05a34d48d3223b2780c9afffd0cdbab9d5c50ffd\u0026quot;\u0026gt;\u0026lt;code\u0026gt;05a34d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1346\u0026quot;\u0026gt;#1346\u0026lt;/a\u0026gt; from uwezkhan/fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/a4829d4d43b29e430b97ab66313f6357edd3742d\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a4829d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/66579fbf8fb4aeb6bf1ded0cfa353ba3d500e35a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;66579fb\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix formatting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1f55c2035315e53b8d9a6eeacf1aee046d794fd3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1f55c20\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/compare/v7.0.3...v7.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `idna` from 3.11 to 3.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\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/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.7.1 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#110937\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/cpython/issues/140141\"\u003epython/cpython#140141\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/cpython/issues/143658\"\u003epython/cpython#143658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved Python 3.9 compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a5c2154835facb4a9d0a6f5b3aac1f3d1ff86170\"\u003e\u003ccode\u003ea5c2154\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e66e22634f7522e7778b66e8a8b19782a11d4943\"\u003e\u003ccode\u003ee66e226\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/6027933ae96c9e51dd0b7ce392cb30f6fcae1940\"\u003e\u003ccode\u003e6027933\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b89388a53bf857127e0a6860dfcfe2cd69a79ab8\"\u003e\u003ccode\u003eb89388a\u003c/code\u003e\u003c/a\u003e Import os_helper directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2dcb761d940b0115b786ab3b6f336af7d94630f4\"\u003e\u003ccode\u003e2dcb761\u003c/code\u003e\u003c/a\u003e Add uniform exclusions for test.support.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.0 (2026-04-17)\u003c/h1\u003e\n\u003cp\u003eThis release fixes a possible external entity injection (XXE) vulnerability in\n\u003ccode\u003eiterparse()\u003c/code\u003e and the \u003ccode\u003eETCompatXMLParser\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#486: The HTML ARIA accessibility attributes were added to the set of safe attributes\nin \u003ccode\u003elxml.html.defs\u003c/code\u003e.  This allows \u003ccode\u003elxml_html_clean\u003c/code\u003e to pass them through.\nPatch by oomsveta.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default chunk size for reading from file-likes in \u003ccode\u003eiterparse()\u003c/code\u003e is now configurable\nwith a new \u003ccode\u003echunk_size\u003c/code\u003e argument.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2146291: The \u003ccode\u003eresolve_entities\u003c/code\u003e option was still set to \u003ccode\u003eTrue\u003c/code\u003e for\n\u003ccode\u003eiterparse\u003c/code\u003e and \u003ccode\u003eETCompatXMLParser\u003c/code\u003e, allowing for external entity injection (XXE)\nwhen using these parsers without setting this option explicitly.\nThe default was now changed to \u003ccode\u003e'internal'\u003c/code\u003e only (as for the normal XML and HTML parsers\nsince lxml 5.0).\nIssue found by Sihao Qiu as CVE-2026-41066.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.0.4 (2026-04-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2148019: Spurious MemoryError during namespace cleanup.\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/lxml/lxml/commit/43722...\n\n_Description has been truncated_","html_url":"https://github.com/invenhost/InvenTree/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/invenhost%2FInvenTree/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"},{"uuid":"4402708875","node_id":"PR_kwDOSQXwv87ZV9EK","number":39,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-14T23:53:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-07T23:55:13.000Z","updated_at":"2026-05-14T23:53:42.000Z","time_to_close":604707,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":23,"packages":[{"name":"apprise","old_version":"1.9.9","new_version":"1.10.0","repository_url":"https://github.com/caronc/apprise"},{"name":"cryptography","old_version":"46.0.7","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"cyclopts","old_version":"4.10.2","new_version":"4.11.2","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.0.6","new_version":"7.1.1","repository_url":"https://github.com/tkem/cachetools"},{"name":"coolname","old_version":"4.2.0","new_version":"5.0.0","repository_url":"https://github.com/alexanderlukanin13/coolname"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"orjson","old_version":"3.11.8","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.1","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic","old_version":"2.13.3","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"uvicorn","old_version":"0.45.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.19.2","new_version":"0.20.1","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.7","new_version":"0.11.11","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-dbt","old_version":"0.7.23","new_version":"0.7.24","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-redis","old_version":"0.2.10","new_version":"0.2.11","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.1.22","new_version":"5.2.0","repository_url":"https://github.com/getmoto/moto"},{"name":"pyright","old_version":"1.1.408","new_version":"1.1.409","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-cachetools","old_version":"6.2.0.20260408","new_version":"7.0.0.20260503","repository_url":"https://github.com/python/typeshed"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 22 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.9.9` | `1.10.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `48.0.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.10.2` | `4.11.2` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.6` | `7.1.1` |\n| [coolname](https://github.com/alexanderlukanin13/coolname) | `4.2.0` | `5.0.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.4.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.8` | `3.11.9` |\n| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.45.0` | `0.46.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.19.2` | `0.20.1` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.7` | `0.11.11` |\n| [prefect-dbt](https://github.com/PrefectHQ/prefect) | `0.7.23` | `0.7.24` |\n| [prefect-redis](https://github.com/PrefectHQ/prefect) | `0.2.10` | `0.2.11` |\n| [moto](https://github.com/getmoto/moto) | `5.1.22` | `5.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.408` | `1.1.409` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.12` |\n| [types-cachetools](https://github.com/python/typeshed) | `6.2.0.20260408` | `7.0.0.20260503` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `4.5.0` |\n\n\nUpdates `apprise` from 1.9.9 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThe big wow factor of this release would be the huge effort put into Matrix E2EE built into Apprise without adding overhead to the plugin itself. Huge props to those that helped out.  Other than that, a few more services have been added (137 supported now :rocket: ).\u003c/p\u003e\n\u003cp\u003eThe official documentation website (\u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) got a nice cleanup; the Service listings are now searchable; some nice tweaks to the URL Builder as well.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOpsgenie functionality ported to jira:// in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1273\"\u003ecaronc/apprise#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvolution API (WhatsApp) notification plugin by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1579\"\u003ecaronc/apprise#1579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded blink(1) support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1578\"\u003ecaronc/apprise#1578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExotel Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/782\"\u003ecaronc/apprise#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Octopush Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/622\"\u003ecaronc/apprise#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Postmark support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1590\"\u003ecaronc/apprise#1590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003entfy:// tags= changed to xtags= in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1555\"\u003ecaronc/apprise#1555\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003ethis allows tags to work again correctly for those dependant on it; previously \u003ccode\u003etags=\u003c/code\u003e conflicted with \u003ccode\u003etags=\u003c/code\u003e in Apprise)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eXMPP server hostname can differentiate to what is found in JID in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1560\"\u003ecaronc/apprise#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with mailto:// when using yahoo.com in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1561\"\u003ecaronc/apprise#1561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFluxer time dependant unittest assertion optimized for slower systems in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1566\"\u003ecaronc/apprise#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed templating references impacting url generation (on \u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1582\"\u003ecaronc/apprise#1582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed KeyError Exception thrown when certain emoji's specified in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1592\"\u003ecaronc/apprise#1592\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the Dot. (Quote/0) plugin from API v1 to API v2 by \u003ca href=\"https://github.com/HerbertGao\"\u003e\u003ccode\u003e@​HerbertGao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1512\"\u003ecaronc/apprise#1512\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Dot. plugin to better align with Apprise in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1588\"\u003ecaronc/apprise#1588\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eURLs that can not be loaded are more verbose for the reasoning in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1568\"\u003ecaronc/apprise#1568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebex wxteams:// Bot API Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1567\"\u003ecaronc/apprise#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes parse_url() -\u0026gt; url() -\u0026gt; parse_url() inconsistency in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1572\"\u003ecaronc/apprise#1572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushover Delivery Group Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1563\"\u003ecaronc/apprise#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix token template cleanup in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1573\"\u003ecaronc/apprise#1573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efcm:// add apns-push-type header for reliable iOS delivery by \u003ca href=\"https://github.com/AlbertoLanaro\"\u003e\u003ccode\u003e@​AlbertoLanaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1577\"\u003ecaronc/apprise#1577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHome Assistant \u0026quot;Service' Notification Support Added (extension to what was already there) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1294\"\u003ecaronc/apprise#1294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded attachment support to Mattermost in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1583\"\u003ecaronc/apprise#1583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Matrix E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1574\"\u003ecaronc/apprise#1574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix Hookshot support added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1586\"\u003ecaronc/apprise#1586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMastodon supports hashtag/user references in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1587\"\u003ecaronc/apprise#1587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushPlus refactored to support more options in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1589\"\u003ecaronc/apprise#1589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInproved azure:// error handling and message responses in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1499\"\u003ecaronc/apprise#1499\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1554\"\u003ecaronc/apprise#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemory-Optimized Plugin Management in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1557\"\u003ecaronc/apprise#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter configuration updated and applied to entire codebase in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1562\"\u003ecaronc/apprise#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(pt_BR): add Brazilian Portuguese translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1580\"\u003ecaronc/apprise#1580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(es): add Spanish translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1581\"\u003ecaronc/apprise#1581\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\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/caronc/apprise/commit/343c960969477b60df580f70294ce966bb4b0ce2\"\u003e\u003ccode\u003e343c960\u003c/code\u003e\u003c/a\u003e bummped version to v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/67b523077173bcf8c717b0e567b7d2e7251d21e1\"\u003e\u003ccode\u003e67b5230\u003c/code\u003e\u003c/a\u003e Inproved azure:// error handling and message responses (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1499\"\u003e#1499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/755f17479ff20fd9473e1aa15ab1b190920041c3\"\u003e\u003ccode\u003e755f174\u003c/code\u003e\u003c/a\u003e bugfix: KeyError Exception thrown when certain emoji's specified (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1592\"\u003e#1592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/a7bc56dd81ea60b1c9f59775d1e005e560a716b9\"\u003e\u003ccode\u003ea7bc56d\u003c/code\u003e\u003c/a\u003e PushPlus refactored to support more options (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1589\"\u003e#1589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9d0056b9cd4771bc752d4ff2936a1e4977e3fa81\"\u003e\u003ccode\u003e9d0056b\u003c/code\u003e\u003c/a\u003e Added Postmark support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0617ef7ac63cc6f1e850913c055e280043360358\"\u003e\u003ccode\u003e0617ef7\u003c/code\u003e\u003c/a\u003e Updated Dot. plugin to better align with Apprise standards (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1588\"\u003e#1588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0fbe0946869fab49c330d6fd5fb89ea58cb9b6db\"\u003e\u003ccode\u003e0fbe094\u003c/code\u003e\u003c/a\u003e Added Octopush Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/58d0f1e00a5e4daac928372d1b49a2886e7589f2\"\u003e\u003ccode\u003e58d0f1e\u003c/code\u003e\u003c/a\u003e Exotel Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/2a8d62fad5dc1930d8f14e0775341692ff0c5aa5\"\u003e\u003ccode\u003e2a8d62f\u003c/code\u003e\u003c/a\u003e Mastodon supports hashtag/user references (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1587\"\u003e#1587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1382633788004b515240c0f17c5b0cfe0f111554\"\u003e\u003ccode\u003e1382633\u003c/code\u003e\u003c/a\u003e Matrix Hookshot support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.9.9...v1.10.0\"\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.7 to 48.0.0\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\u003e48.0.0 - 2026-05-04\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **BACKWARDS INCOMPATIBLE:** Support for Python 3.8 has been removed.\n  ``cryptography`` now requires Python 3.9 or later.\n* **BACKWARDS INCOMPATIBLE:** Loading an X.509 CRL whose inner\n  ``TBSCertList.signature`` algorithm does not match the outer\n  ``signatureAlgorithm`` now raises ``ValueError``. Previously, such CRLs\n  were parsed successfully and only rejected during signature validation.\n* Added support for :doc:`/hazmat/primitives/asymmetric/mlkem` and\n  :doc:`/hazmat/primitives/asymmetric/mldsa` when using OpenSSL 3.5.0 or\n  later, in addition to the existing AWS-LC and BoringSSL support. This means\n  post-quantum algorithms are now available to users of our wheels.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Going forward, we do not guarantee that all functionality\u003cbr /\u003e\nin \u003ccode\u003ecryptography\u003c/code\u003e will be available when building against\u003cbr /\u003e\nOpenSSL. See :doc:\u003ccode\u003e/statements/state-of-openssl\u003c/code\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v47-0-0:\u003c/p\u003e\n\u003cp\u003e47.0.0 - 2026-04-24\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.8 is deprecated and will be removed in the next\n\u003ccode\u003ecryptography\u003c/code\u003e release.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for binary elliptic curves\n(\u003ccode\u003eSECT*\u003c/code\u003e classes) has been removed. These curves are rarely used and\nhave additional security considerations that make them undesirable.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for OpenSSL 1.1.x has been removed.\nOpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC\ncontinue to be supported.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Dropped support for LibreSSL \u0026lt; 4.1.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Loading keys with unsupported algorithms or\nkeys with unsupported explicit curve encodings now raises\n:class:\u003ccode\u003e~cryptography.exceptions.UnsupportedAlgorithm\u003c/code\u003e instead of\n\u003ccode\u003eValueError\u003c/code\u003e. This change affects\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_public_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_public_key\u003c/code\u003e,\nand :meth:\u003ccode\u003e~cryptography.x509.Certificate.public_key\u003c/code\u003e when called on\ncertificates with unsupported public key algorithms.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e When parsing elliptic curve private keys, we now\nreject keys that incorrectly encode a private key of the wrong length because\nsuch keys are impossible to process in a constant-time manner. We do not\nbelieve keys with this problem are in wide use, however we may revert this\nchange based on the feedback we receive.\u003c/li\u003e\n\u003cli\u003eDeprecated passing 64-bit (8-byte) and 128-bit (16-byte) keys to\n:class:\u003ccode\u003e~cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES\u003c/code\u003e. In a\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/pyca/cryptography/commit/8e03e30e3aae01632a697e903e3593c924f0139d\"\u003e\u003ccode\u003e8e03e30\u003c/code\u003e\u003c/a\u003e bump for 48.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14796\"\u003e#14796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71\"\u003e\u003ccode\u003e295e0d2\u003c/code\u003e\u003c/a\u003e Add AGENTS.md with CLAUDE.md symlink (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14794\"\u003e#14794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8\"\u003e\u003ccode\u003e104a2de\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926\"\u003e\u003ccode\u003e67ec1e5\u003c/code\u003e\u003c/a\u003e call check_length early on AesSiv::encrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14792\"\u003e#14792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26\"\u003e\u003ccode\u003eb2da57a\u003c/code\u003e\u003c/a\u003e changelog for mldsa/mlkem for openssl (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14791\"\u003e#14791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0\"\u003e\u003ccode\u003e3cf44ad\u003c/code\u003e\u003c/a\u003e ML-KEM OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14781\"\u003e#14781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83\"\u003e\u003ccode\u003e2e31639\u003c/code\u003e\u003c/a\u003e ML-DSA OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14773\"\u003e#14773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3\"\u003e\u003ccode\u003e5affe5a\u003c/code\u003e\u003c/a\u003e fix rust nightly clippy (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14790\"\u003e#14790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec\"\u003e\u003ccode\u003e2e73ca4\u003c/code\u003e\u003c/a\u003e bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/82ebd3b9f49d49ad5fd8b4b1f1dd02487b6e1466\"\u003e\u003ccode\u003e82ebd3b\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14785\"\u003e#14785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.7...48.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2026.1.post1 to 2026.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/45957c55be9dbf013b636aeb7d22dc7bec81a9f4\"\u003e\u003ccode\u003e45957c5\u003c/code\u003e\u003c/a\u003e Bump github actions/checkout to \u003ca href=\"https://github.com/v6\"\u003e\u003ccode\u003e@​v6\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/8e927c67c98ccde3624642f2f32cd6c5208a5161\"\u003e\u003ccode\u003e8e927c6\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2026.2 (IANA 2026b)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/6f08adec7bcb382e78afedb660f94f38a093fddf\"\u003e\u003ccode\u003e6f08ade\u003c/code\u003e\u003c/a\u003e IANA 2026b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/edbfbdf8f708657ce5b9fee32e2f8eaa8647359a\"\u003e\u003ccode\u003eedbfbdf\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from dd6be6d155..8be0d5483d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/a148b0390a42ea9a95ef7f6d8c346307405708d5\"\u003e\u003ccode\u003ea148b03\u003c/code\u003e\u003c/a\u003e Fix typo in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b841195f5df79455ee3aa9ec3d8749af835dab48\"\u003e\u003ccode\u003eb841195\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2026.1.post1...release_2026.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.10.2 to 4.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_should_attempt_json_list\u003c/code\u003e for detecting \u003ccode\u003elist[str] | None\u003c/code\u003e and Annotated annotations by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/800\"\u003eBrianPugh/cyclopts#800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude meta-apps when assembling usage string by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/793\"\u003eBrianPugh/cyclopts#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing python3.14 classifier by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/796\"\u003eBrianPugh/cyclopts#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003cstrong\u003euntyped\u003c/strong\u003e boolean negative name derivation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/798\"\u003eBrianPugh/cyclopts#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious completion fixes by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/794\"\u003eBrianPugh/cyclopts#794\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eusage_name\u003c/code\u003e override for configuring docs creation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/791\"\u003eBrianPugh/cyclopts#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded granular help for \u003ccode\u003edict[str, dataclass-like]\u003c/code\u003e params by \u003ca href=\"https://github.com/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hints/completion for attrs converter functions. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/784\"\u003eBrianPugh/cyclopts#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix token_count for discriminated unions by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/789\"\u003eBrianPugh/cyclopts#789\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc Internal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eprefer using consistent \u003ccode\u003eis_annotated\u003c/code\u003e over get_origin by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/792\"\u003eBrianPugh/cyclopts#792\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/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/921b1fa36afa2faca35f5e54d366f27816bed407\"\u003e\u003ccode\u003e921b1fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/800\"\u003e#800\u003c/a\u003e from BrianPugh/json-list-detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f37a3fa84d70a2df6481296199777bd048cdd8b0\"\u003e\u003ccode\u003ef37a3fa\u003c/code\u003e\u003c/a\u003e use self.hint instead of self.field_info.annotation in _should_attempt_json_list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f54568a310a0f8fb69bf570cfc82f65320f0f005\"\u003e\u003ccode\u003ef54568a\u003c/code\u003e\u003c/a\u003e replicate bug described by \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/799\"\u003e#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/9e0806f2c1cf4a8ba1f78f4a5c6c3cee54d81d41\"\u003e\u003ccode\u003e9e0806f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/794\"\u003e#794\u003c/a\u003e from BrianPugh/better-completion-harness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ad4f7e2e1b50403069f6e5136bce6ead4a285565\"\u003e\u003ccode\u003ead4f7e2\u003c/code\u003e\u003c/a\u003e more tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5d5259f0c275456c313f8266d9ea85545d4f7573\"\u003e\u003ccode\u003e5d5259f\u003c/code\u003e\u003c/a\u003e fix: don't escape option/command names in single-quoted bash arrays\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b0dc417b95629d52321ce32aa7b2aee6377135f0\"\u003e\u003ccode\u003eb0dc417\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/798\"\u003e#798\u003c/a\u003e from BrianPugh/untyped-boolean-negative\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b6e8a2c47220ab2c5a5ae725ca7f0f3d13c0b2c5\"\u003e\u003ccode\u003eb6e8a2c\u003c/code\u003e\u003c/a\u003e Treat Any-annotated bool default as flag for negative-name generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/dc38699b7656299de5ff0d3466148cb6d8589078\"\u003e\u003ccode\u003edc38699\u003c/code\u003e\u003c/a\u003e infer boolean-type from default value when determining negative-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/14d8fad42e205298a771c921a48ef7835ba962a4\"\u003e\u003ccode\u003e14d8fad\u003c/code\u003e\u003c/a\u003e Add a test that replicates \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/797\"\u003e#797\u003c/a\u003e (missing negative flag for unannotated boolea...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.6 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.1 (2026-05-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type stub improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.0 (2026-05-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type stubs based on the work of the good people at \u003ccode\u003etypeshed \u0026lt;https://github.com/python/typeshed/tree/main/stubs/cachetools/\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate unit tests.\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/tkem/cachetools/commit/2e6a2d21c44e83b56c06cc9dd738e5b7a097ce6a\"\u003e\u003ccode\u003e2e6a2d2\u003c/code\u003e\u003c/a\u003e Release v7.1.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/cc065582849e3658d2c92aac0f5c2b6271ed077f\"\u003e\u003ccode\u003ecc06558\u003c/code\u003e\u003c/a\u003e Minor typing improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/193dd62d9be4e1099039e8fba59a1fe50e8f4d08\"\u003e\u003ccode\u003e193dd62\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/393\"\u003e#393\u003c/a\u003e: Improve ambiguous overloads for decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/1ea3422e058ef8b6b7dc15beb9d44d8f7c195a62\"\u003e\u003ccode\u003e1ea3422\u003c/code\u003e\u003c/a\u003e Bump release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/d9874465a6ab6f9d1d56cef91370f9c237a7eca6\"\u003e\u003ccode\u003ed987446\u003c/code\u003e\u003c/a\u003e Release v7.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3d79e80a4a54892d1552cd17da8e27920c1918d8\"\u003e\u003ccode\u003e3d79e80\u003c/code\u003e\u003c/a\u003e Update Copilot Instructions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/83fe6bc78d0155a0036dda8a8eb1a2ddb8f26c60\"\u003e\u003ccode\u003e83fe6bc\u003c/code\u003e\u003c/a\u003e Add tox pyright check.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bd3fbc49212eb948e08e9c478e5901f1293fd1f4\"\u003e\u003ccode\u003ebd3fbc4\u003c/code\u003e\u003c/a\u003e Improve typing support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/09dd6fec4b1b2339451ab26d1ca3c7a049b8c38c\"\u003e\u003ccode\u003e09dd6fe\u003c/code\u003e\u003c/a\u003e Improve original type stubs from typeshed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/873c7013ea92b16f2f24a6001e625fabfdf951a5\"\u003e\u003ccode\u003e873c701\u003c/code\u003e\u003c/a\u003e Add typeshed typings.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.6...v7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coolname` from 4.2.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexanderlukanin13/coolname/blob/master/HISTORY.rst\"\u003ecoolname's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0 (2026-04-22)\u003c/h2\u003e\n\u003cp\u003eThis major release has new features and significant internal changes, but it is compatible with 4.x in any normal usage\nas described in documentation, and you can upgrade from 4.x with minimal unit test coverage.\u003c/p\u003e\n\u003cp\u003eThere are implementation changes that \u003cem\u003etheoretically\u003c/em\u003e can break user code in undocumented scenarios.\nEven if it breaks, most likely, it will take a minute to fix.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's new in the default generator:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eComplete typing support, tested with mypy \u003ccode\u003estrict = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a few more words, and fixed one spelling mistake.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. collapse:: Boring technical details\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* :py:class:`RandomGenerator` and global methods like :py:func:`generate_slug` now live in the top-level\n  ``coolname`` namespace.\n  It won't affect your code if you've been importing directly from ``coolname`` as per documentation.\n\u003cp\u003eBasically, instead of this:\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; from coolname import generate_slug, RandomGenerator\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.impl.RandomGenerator object at 0x7a7cb248d6a0\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.impl.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou will see this (notice no \u003ccode\u003eimpl\u003c/code\u003e):\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.RandomGenerator object at 0x75038bacde80\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIn custom generators:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDefault parameter value changed: \u003ccode\u003eensure_unique=True\u003c/code\u003e. Custom generators can forget about it\nand still generate sequences without repeating words.\nConsider also using \u003ccode\u003eensure_unique_prefix\u003c/code\u003e (disabled by default).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:doc:\u003ccode\u003eNew parameters \u0026lt;parameters-table\u0026gt;\u003c/code\u003e for advanced words/phrases lists:\n\u003ccode\u003estrip_whitespace\u003c/code\u003e, \u003ccode\u003eallow_whitespace\u003c/code\u003e, \u003ccode\u003eseparator\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhat is considered a valid word? It's now controlled by \u003ccode\u003eword_regex\u003c/code\u003e parameter, \u003ccode\u003e\\w+\u003c/code\u003e by default.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/7d450781390fc2193b676a339e34adb697f1febb\"\u003e\u003ccode\u003e7d45078\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/13541d9e8e768751898732e51188defb5524917d\"\u003e\u003ccode\u003e13541d9\u003c/code\u003e\u003c/a\u003e docs: autodoc fix - build package first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/8015c5efc0f209a685be2ff6b5bc5f82c5594996\"\u003e\u003ccode\u003e8015c5e\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/659fad71955a169543a76acb5188af68ea1a8b95\"\u003e\u003ccode\u003e659fad7\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/3a1d21b788f9276b2ff8421b1a7f20e90df25fa8\"\u003e\u003ccode\u003e3a1d21b\u003c/code\u003e\u003c/a\u003e docs: HISTORY\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/a351596508e19f178ce5513f9029f2cd662d8338\"\u003e\u003ccode\u003ea351596\u003c/code\u003e\u003c/a\u003e feat: number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/9e04baba3f69c1465ad8e85c384f58af5904b309\"\u003e\u003ccode\u003e9e04bab\u003c/code\u003e\u003c/a\u003e work in progress\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/4f0b8f98a5cc5937f27eefcde8b8e6acc3f988c2\"\u003e\u003ccode\u003e4f0b8f9\u003c/code\u003e\u003c/a\u003e improved: PhraseSplitter clearer error messages + tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e9cceba9fc104145588447f0e9a07d5b223914ab\"\u003e\u003ccode\u003ee9cceba\u003c/code\u003e\u003c/a\u003e refactor: use pathlib.Path in coolname.loader; updated tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e6484ed0c9d1c6cd1258f05218f2a1dae0cbabf6\"\u003e\u003ccode\u003ee6484ed\u003c/code\u003e\u003c/a\u003e Bump pytest from 7.4.4 to 9.0.3 in /requirements\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexanderlukanin13/coolname/compare/4.2.0...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.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\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/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.136.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 `fsspec` from 2026.3.0 to 2026.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8fdedd1fd17be354f75f0cec1f973d93416c704b\"\u003e\u003ccode\u003e8fdedd1\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8205d0d1afecb64f34565ebeb073b7f1959a869d\"\u003e\u003ccode\u003e8205d0d\u003c/code\u003e\u003c/a\u003e Release (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/50bfba22200077fa602038857e19d58cc2541db5\"\u003e\u003ccode\u003e50bfba2\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/f58bc851213ab3a87b2d26c01c9d26b291b0e1d3\"\u003e\u003ccode\u003ef58bc85\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c6c7b40b7794c6e554d9dcae7bf4930bba67e403\"\u003e\u003ccode\u003ec6c7b40\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/3bc67f85c3b67c5adef11af35761fd839de306fb\"\u003e\u003ccode\u003e3bc67f8\u003c/code\u003e\u003c/a\u003e DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/0b290bf1336bb15d4327afcdf743d9a17b5ea762\"\u003e\u003ccode\u003e0b290bf\u003c/code\u003e\u003c/a\u003e docs: add URL handling note to HTTPFileSystem class docstring (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/b33a2d6c3b6912c645d9a315791f41e74bff4c66\"\u003e\u003ccode\u003eb33a2d6\u003c/code\u003e\u003c/a\u003e ci: install downstream systems like gcsfs before testing so the \u003ccode\u003e_version.py\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e9e7a5b5eab42b6c6d0790aa0aa510f66fc44630\"\u003e\u003ccode\u003ee9e7a5b\u003c/code\u003e\u003c/a\u003e Delegate DirFileSystem delete and write_text (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2022\"\u003e#2022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/105d614a443e3f46236deb87442cc5491741687c\"\u003e\u003ccode\u003e105d614\u003c/code\u003e\u003c/a\u003e fix: use encode_url() in _pipe_file for consistency (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2023\"\u003e#2023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2026.3.0...2026.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.11.8 to 3.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9 - 2026-05-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a\"\u003e\u003ccode\u003e705515d\u003c/code\u003e\u003c/a\u003e 3.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6\"\u003e\u003ccode\u003ed19055d\u003c/code\u003e\u003c/a\u003e build update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0\"\u003e\u003ccode\u003e77e2d96\u003c/code\u003e\u003c/a\u003e MSRV 1.95, remove compiler feature detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.8...3.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.1 to 26.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \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/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now 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/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details 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/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite 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/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation 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/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example 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/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor 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/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees 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/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd 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/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.3 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\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/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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/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\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.46.3 to 2.46.4\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\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/core-v2.46.3...core-v2.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.45.0 to 0.46.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.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in 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/2917\"\u003eKludex/uvicorn#2917\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.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.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.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\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/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydocket` from 0.19.2 to 0.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chrisguidry/docket/releases\"\u003epydocket's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.1 - Barely Annotated\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies group with 16 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/chrisguidry/docket/pull/402\"\u003echrisguidry/docket#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSurface the run_at_most rule in docstrings and docs by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/403\"\u003echrisguidry/docket#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin uncalled-for\u0026gt;=0.3.2 for bare-class Annotated shorthand by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/404\"\u003echrisguidry/docket#404\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.0...0.20.1\"\u003ehttps://github.com/chrisguidry/docket/compare/0.20.0...0.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.20.0 - Burn After Redising\u003c/h2\u003e\n\u003cp\u003eHuge thanks to \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e for his excellent \u003ca href=\"https://pypi.org/project/burner-redis/\"\u003e\u003ccode\u003eburner-redis\u003c/code\u003e\u003c/a\u003e, the new in-memory Redis implementation.  \u003ccode\u003eburner-redis\u003c/code\u003e supplants the venerable \u003ccode\u003efake-redis\u003c/code\u003e as a production-oriented, high-performance implementation.  This should mean major improvements to memory usage, runtime performance, and installation heft.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies group with 9 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/chrisguidry/docket/pull/396\"\u003echrisguidry/docket#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace fakeredis with burner-redis by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/394\"\u003echrisguidry/docket#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin \u003ccode\u003eburner-redis\u0026gt;=0.1.6\u003c/code\u003e by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/399\"\u003echrisguidry/docket#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd list operations to RedisClient protocol by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/400\"\u003echrisguidry/docket#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTighten the RedisClient protocol's types by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/401\"\u003echrisguidry/docket#401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.19.2...0.20.0\"\u003ehttps://github.com/chrisguidry/docket/compare/0.19.2...0.20.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/chrisguidry/docket/commit/fd2fe5bb6dce74d827432fac8a22458aafebabd0\"\u003e\u003ccode\u003efd2fe5b\u003c/code\u003e\u003c/a\u003e Pin uncalled-for\u0026gt;=0.3.2 for bare-class Annotated shorthand (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/7288855919d27e30c5801ccafc48fb78ec5ffe52\"\u003e\u003ccode\u003e7288855\u003c/code\u003e\u003c/a\u003e Surface the run_at_most rule in docstrings and docs (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/eb373c92bccef3620051275fbe9592c0c1c22f77\"\u003e\u003ccode\u003eeb373c9\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group with 16 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/402\"\u003e#402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/54b516fb61fa3ba6729a077d2869479b25d1580a\"\u003e\u003ccode\u003e54b516f\u003c/code\u003e\u003c/a\u003e Tighten the RedisClient protocol's types (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/ba7b1dfd14c97febd04c8a976134cf961946f140\"\u003e\u003ccode\u003eba7b1df\u003c/code\u003e\u003c/a\u003e Add list operations to RedisClient protocol (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/96612f1a80f97f95ae9a19255be53fa193682649\"\u003e\u003ccode\u003e96612f1\u003c/code\u003e\u003c/a\u003e Pin \u003ccode\u003eburner-redis\u0026gt;=0.1.6\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/24ad947139cebd3956f6e8c37fc5cc2e3dca80c2\"\u003e\u003ccode\u003e24ad947\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003efakeredis\u003c/code\u003e with \u003ccode\u003eburner-redis\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/3c8f09e76eecf23c781c45b8ebfd8dad5d5eceb9\"\u003e\u003ccode\u003e3c8f09e\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group with 9 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.19.2...0.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.11.7 to 0.11.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-06....\n\n_Description has been truncated_","html_url":"https://github.com/sxarsky/eval-prefect/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sxarsky%2Feval-prefect/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"},{"uuid":"4381014545","node_id":"PR_kwDOJDpYW87YPItf","number":197,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 4.4.0 to 4.5.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-05T02:15:50.000Z","updated_at":"2026-05-17T01:02:17.457Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.4.0 to 4.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\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/CodSpeedHQ/pytest-codspeed/commit/2dc73989e2d58c58f7be53bcc9a7955d01461486\"\u003e\u003ccode\u003e2dc7398\u003c/code\u003e\u003c/a\u003e Release v4.5.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48f8ce80dcc9c37033512737315bcd4e5d777e0f\"\u003e\u003ccode\u003e48f8ce8\u003c/code\u003e\u003c/a\u003e chore: pre-build macos binary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/facf0502e5b535882bf7502ee6aba60c5ca78763\"\u003e\u003ccode\u003efacf050\u003c/code\u003e\u003c/a\u003e chore: bump instrument-hooks submodule to use int32_t as pid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d42de442be0037705d13e8c02108210aa230c736\"\u003e\u003ccode\u003ed42de44\u003c/code\u003e\u003c/a\u003e ci: add macos integration test\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.4.0\u0026new-version=4.5.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/Bluetooth-Devices/ulid-transform/pull/197","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fulid-transform/issues/197","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/197/packages"},{"uuid":"4375275398","node_id":"PR_kwDOK6jZG87X8LhO","number":106,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 4.3.0 to 4.5.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-05-04T09:04:05.000Z","updated_at":"2026-05-04T09:05:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.3.0 to 4.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eWe now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.\u003c/p\u003e\n\u003cp\u003eThis data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: fix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003eCodSpeedHQ/pytest-codspeed#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Exclude setup time from benchmark in walltime mode by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: collect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003eCodSpeedHQ/pytest-codspeed#108\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/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e) by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003e#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python pinned python version by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003e#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd CONTRIBUTING.md by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\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/CodSpeedHQ/pytest-codspeed/commit/2dc73989e2d58c58f7be53bcc9a7955d01461486\"\u003e\u003ccode\u003e2dc7398\u003c/code\u003e\u003c/a\u003e Release v4.5.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48f8ce80dcc9c37033512737315bcd4e5d777e0f\"\u003e\u003ccode\u003e48f8ce8\u003c/code\u003e\u003c/a\u003e chore: pre-build macos binary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/facf0502e5b535882bf7502ee6aba60c5ca78763\"\u003e\u003ccode\u003efacf050\u003c/code\u003e\u003c/a\u003e chore: bump instrument-hooks submodule to use int32_t as pid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d42de442be0037705d13e8c02108210aa230c736\"\u003e\u003ccode\u003ed42de44\u003c/code\u003e\u003c/a\u003e ci: add macos integration test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/34048c79e218307312a7973be67e5022101e8321\"\u003e\u003ccode\u003e34048c7\u003c/code\u003e\u003c/a\u003e Release v4.4.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/bf7bd37cc4f9b2fbab1e46768c38b2c682da19c5\"\u003e\u003ccode\u003ebf7bd37\u003c/code\u003e\u003c/a\u003e feat: collect Python toolchain information via instrument hooks environment API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48a48229b175d47aae083878637a6b4d018faaa9\"\u003e\u003ccode\u003e48a4822\u003c/code\u003e\u003c/a\u003e fix: Exclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/aa267f31bdbc392d66d5142469e0d9c7b04dd617\"\u003e\u003ccode\u003eaa267f3\u003c/code\u003e\u003c/a\u003e ci: bump the python pinned python version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/e92999a7c59e209d3582d36ac0f6bf7e853a7d2d\"\u003e\u003ccode\u003ee92999a\u003c/code\u003e\u003c/a\u003e fix: fix segfault caused by multiple activate_stack_trampoline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/c02b664168bd740fe9116036e9fad8470161ea6d\"\u003e\u003ccode\u003ec02b664\u003c/code\u003e\u003c/a\u003e chore: add CONTRIBUTING.md\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.5.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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.3.0\u0026new-version=4.5.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/Bluetooth-Devices/cached-ipaddress/pull/106","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fcached-ipaddress/issues/106","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/106/packages"},{"uuid":"4363188000","node_id":"PR_kwDOCvS9pc7XW89X","number":59,"state":"open","title":"Bump pytest-codspeed from 4.3.0 to 4.5.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["emcek"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T06:33:17.000Z","updated_at":"2026-05-01T06:33:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.3.0 to 4.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eWe now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.\u003c/p\u003e\n\u003cp\u003eThis data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: fix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003eCodSpeedHQ/pytest-codspeed#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Exclude setup time from benchmark in walltime mode by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: collect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003eCodSpeedHQ/pytest-codspeed#108\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/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e) by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003e#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python pinned python version by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003e#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd CONTRIBUTING.md by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\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/CodSpeedHQ/pytest-codspeed/commit/2dc73989e2d58c58f7be53bcc9a7955d01461486\"\u003e\u003ccode\u003e2dc7398\u003c/code\u003e\u003c/a\u003e Release v4.5.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48f8ce80dcc9c37033512737315bcd4e5d777e0f\"\u003e\u003ccode\u003e48f8ce8\u003c/code\u003e\u003c/a\u003e chore: pre-build macos binary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/facf0502e5b535882bf7502ee6aba60c5ca78763\"\u003e\u003ccode\u003efacf050\u003c/code\u003e\u003c/a\u003e chore: bump instrument-hooks submodule to use int32_t as pid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d42de442be0037705d13e8c02108210aa230c736\"\u003e\u003ccode\u003ed42de44\u003c/code\u003e\u003c/a\u003e ci: add macos integration test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/34048c79e218307312a7973be67e5022101e8321\"\u003e\u003ccode\u003e34048c7\u003c/code\u003e\u003c/a\u003e Release v4.4.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/bf7bd37cc4f9b2fbab1e46768c38b2c682da19c5\"\u003e\u003ccode\u003ebf7bd37\u003c/code\u003e\u003c/a\u003e feat: collect Python toolchain information via instrument hooks environment API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48a48229b175d47aae083878637a6b4d018faaa9\"\u003e\u003ccode\u003e48a4822\u003c/code\u003e\u003c/a\u003e fix: Exclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/aa267f31bdbc392d66d5142469e0d9c7b04dd617\"\u003e\u003ccode\u003eaa267f3\u003c/code\u003e\u003c/a\u003e ci: bump the python pinned python version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/e92999a7c59e209d3582d36ac0f6bf7e853a7d2d\"\u003e\u003ccode\u003ee92999a\u003c/code\u003e\u003c/a\u003e fix: fix segfault caused by multiple activate_stack_trampoline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/c02b664168bd740fe9116036e9fad8470161ea6d\"\u003e\u003ccode\u003ec02b664\u003c/code\u003e\u003c/a\u003e chore: add CONTRIBUTING.md\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.5.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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.3.0\u0026new-version=4.5.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/emcek/pyerge/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/emcek%2Fpyerge/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"}],"issue_packages":[{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-31T04:33:07.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4556571063","node_id":"PR_kwDOSXLGM87hCxDL","number":15,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 12 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-07T04:29:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T04:33:07.000Z","updated_at":"2026-06-07T04:29:39.000Z","time_to_close":604590,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":12,"packages":[{"name":"apprise","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/caronc/apprise"},{"name":"click","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"cyclopts","old_version":"4.15.0","new_version":"4.16.1","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.20.3","new_version":"0.21.1","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.15","new_version":"0.11.17","repository_url":"https://github.com/astral-sh/uv"},{"name":"redis","old_version":"7.4.0","new_version":"8.0.0","repository_url":"https://github.com/redis/redis-py"},{"name":"virtualenv","old_version":"21.3.3","new_version":"21.4.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.14","new_version":"0.15.15","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.10.0` | `1.11.0` |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.15.0` | `4.16.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.48.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.20.3` | `0.21.1` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.15` | `0.11.17` |\n| [redis](https://github.com/redis/redis-py) | `7.4.0` | `8.0.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.3.3` | `21.4.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.14` | `0.15.15` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `5.0.2` | `5.0.3` |\n\n\nUpdates `apprise` from 1.10.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eA big win for this release is priortization of grouped/tagged content. Basically, this release allows you to tag multiple items and provide a weight to them.   Apprise will attempt to notify the highest priority/weighted services first (of same level), and only if this level fails will it try the next.  Tagging is no longer just a \u003ccode\u003etag\u003c/code\u003e.  It's now \u003ccode\u003eweight:tag\u003c/code\u003e too;  for example \u003ccode\u003e100:friends\u003c/code\u003e  associates the weight of \u003ccode\u003e100\u003c/code\u003e with the tag \u003ccode\u003efriends\u003c/code\u003e.  You can still continue to notify friends with your Apprise calls, but if there are weight categories, then these will be factored into the order.  Highest priority (weighted) tags have a lower integer value (zero being the  higest priority).  Only the next priority will be notified if the first fails.\u003c/p\u003e\n\u003cp\u003eThis releae also allows you to set up a notifiation service to gracefully fail and not have Apprise itself report a failure.  This is useful for situations where you notify several end points and you really don't care if they're unavailable or not.   Apprise wil do it's usual best effort to send the notification, but not treat it as a failure if it can't get through. Use \u003ccode\u003eoptional=yes\u003c/code\u003e on your Apprise URL.\u003c/p\u003e\n\u003cp\u003eThirdly, this release introduces retries! You can now have Apprise attempt to notify your endpoint a second, or a third, (up to 10x) tries before giving up and deeming it unable to send the notification.  Use \u003ccode\u003eretry=X\u003c/code\u003e on your Apprise URL\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Zoom (Incoming Webhook) Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1596\"\u003ecaronc/apprise#1596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded WeChat Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1598\"\u003ecaronc/apprise#1598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRingCentral Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/878\"\u003ecaronc/apprise#878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSession Open Group Server Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1615\"\u003ecaronc/apprise#1615\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded HumHub Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1623\"\u003ecaronc/apprise#1623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon Chime Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1627\"\u003ecaronc/apprise#1627\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGroupMe Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1629\"\u003ecaronc/apprise#1629\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimproved robustness of windows test cases preventing others from passing in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1609\"\u003ecaronc/apprise#1609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle XMPP SASL SCRAM-PLUS / Channel Binding in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1619\"\u003ecaronc/apprise#1619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTRACE logging during apprise init cleaned up in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1622\"\u003ecaronc/apprise#1622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed mastodon error: AttributeError -  'list' object has no attribute 'union' in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1631\"\u003ecaronc/apprise#1631\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eo365:// saveToSentItems configurable - ?savesent=no in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1599\"\u003ecaronc/apprise#1599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdated WhatsApp Buisness Graph API to v21 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1603\"\u003ecaronc/apprise#1603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Built in retries, escalations, priorities, and optional service calls in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1601\"\u003ecaronc/apprise#1601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSlack Template/Payload support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1604\"\u003ecaronc/apprise#1604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Slack workflows and trigger support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1605\"\u003ecaronc/apprise#1605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:rocket: Pushover E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1612\"\u003ecaronc/apprise#1612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWKD support added to email plugin in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1614\"\u003ecaronc/apprise#1614\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1618\"\u003ecaronc/apprise#1618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAmazon SNS/SES Improvements in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1620\"\u003ecaronc/apprise#1620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNotifico Standalone Support Added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1275\"\u003ecaronc/apprise#1275\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1593\"\u003ecaronc/apprise#1593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTwitter/X migration to API v2 in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1607\"\u003ecaronc/apprise#1607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimprovements to workflow:// based on recent slack:// changes in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1608\"\u003ecaronc/apprise#1608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:unlock: Added redirect= for allowing url redirection control in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1610\"\u003ecaronc/apprise#1610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emqtt:// now depends on paho-mqtt v2.1.0+ in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1613\"\u003ecaronc/apprise#1613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:skull: Retire msteams:// as it is no longer in service upstream in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1625\"\u003ecaronc/apprise#1625\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Install Apprise v1.11.0 from PyPI\r\npip install apprise==1.11.0\r\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/158c4e1febc3e6093b0f357776b315a90c8a89b5\"\u003e\u003ccode\u003e158c4e1\u003c/code\u003e\u003c/a\u003e bumped version to v1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/21db421ee89b24f1716a4fce74a4404a94bbabe7\"\u003e\u003ccode\u003e21db421\u003c/code\u003e\u003c/a\u003e GroupMe Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/f1e4ad2fd6659529597b1e07a1e44192faebff54\"\u003e\u003ccode\u003ef1e4ad2\u003c/code\u003e\u003c/a\u003e fixed mastodon error: AttributeError - 'list' object has no attribute 'union'...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/e17fe9dd64dd79e373877cf8ee07595cc50a01cc\"\u003e\u003ccode\u003ee17fe9d\u003c/code\u003e\u003c/a\u003e Amazon Chime Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1627\"\u003e#1627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/dfdac59c9945385c4c75613e57d19558ec995d50\"\u003e\u003ccode\u003edfdac59\u003c/code\u003e\u003c/a\u003e HumHub Support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1623\"\u003e#1623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9de0397c30a7a2e58eb57c8da995ec54eada80bc\"\u003e\u003ccode\u003e9de0397\u003c/code\u003e\u003c/a\u003e Notifico Standalone Support Added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/c3e67e61d35a1b0609d176786db1e0b2cc1287da\"\u003e\u003ccode\u003ec3e67e6\u003c/code\u003e\u003c/a\u003e Retired msteams:// - as it is no longer in service upstream (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1625\"\u003e#1625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/b463f23979455b61c548a550e40a3c75f0191b30\"\u003e\u003ccode\u003eb463f23\u003c/code\u003e\u003c/a\u003e TRACE logging during apprise init cleaned up (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1e2fdeb72bd8165ad613b162794778ff1c684e67\"\u003e\u003ccode\u003e1e2fdeb\u003c/code\u003e\u003c/a\u003e Amazon SNS/SES Improvements (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/4706d0a4599a5072c8ae17375ee81862bcaac460\"\u003e\u003ccode\u003e4706d0a\u003c/code\u003e\u003c/a\u003e Handle XMPP SASL SCRAM-PLUS / Channel Binding (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1619\"\u003e#1619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.10.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.4.0 to 8.4.1\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.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 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.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32?closed=1\"\u003ehttps://github.com/pallets/click/milestone/32?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\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.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. :issue:\u003ccode\u003e3458\u003c/code\u003e :issue:\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. :issue:\u003ccode\u003e3277\u003c/code\u003e :pr:\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion\nresult. :issue:\u003ccode\u003e3015\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. :issue:\u003ccode\u003e3487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. :issue:\u003ccode\u003e3449\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/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e change log and doc fixes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e Fix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e fix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e fix I/O operation on closed file error with CliRunner and echo_via_pager (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e pager doesn't close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e Handle empty bytes in echo (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e handle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager callbacks (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e Document ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.0...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.15.0 to 4.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.16.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix fish completion for positional args and run fish tests in ci by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/823\"\u003eBrianPugh/cyclopts#823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix zsh completion recursion when \u003ccode\u003eprog_name\u003c/code\u003e matches a builtin helper by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/825\"\u003eBrianPugh/cyclopts#825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd ubuntu-24.04-arm to the CI testing matrix by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/822\"\u003eBrianPugh/cyclopts#822\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add missing typer Option imports in flag negation examples by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\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/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/824\"\u003eBrianPugh/cyclopts#824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.16.0...v4.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.16.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReturn-value objects can now declare their own exit code by defining a \u003ccode\u003e__cyclopts_returncode__\u003c/code\u003e method, which is honored by all built-in \u003ccode\u003eresult_action\u003c/code\u003e handlers. Custom \u003ccode\u003eresult_action\u003c/code\u003e callables can opt in via the new \u003ccode\u003ecyclopts.resolve_returncode\u003c/code\u003e helper. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/818\"\u003eBrianPugh/cyclopts#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://peps.python.org/pep-0692/\"\u003ePEP 692\u003c/a\u003e support: when \u003ccode\u003e**kwargs\u003c/code\u003e is annotated as \u003ccode\u003eUnpack[SomeTypedDict]\u003c/code\u003e, the TypedDict's fields are promoted to top-level CLI options instead of the generic \u003ccode\u003e--[KEYWORD]\u003c/code\u003e catch-all. Per-field \u003ccode\u003eRequired\u003c/code\u003e / \u003ccode\u003eNotRequired\u003c/code\u003e markers are respected independently of the parent kwargs argument. By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/819\"\u003eBrianPugh/cyclopts#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCycloptsError.msg\u003c/code\u003e now accepts a \u003ccode\u003erich.Text\u003c/code\u003e instance. Cyclopts' error-message style palette is exposed as \u003ccode\u003ecyclopts.exceptions.STYLE_OFFENDING_VALUE\u003c/code\u003e, \u003ccode\u003eSTYLE_NAME\u003c/code\u003e, \u003ccode\u003eSTYLE_VALID_CHOICE\u003c/code\u003e, \u003ccode\u003eSTYLE_SUGGESTION\u003c/code\u003e, and \u003ccode\u003eSTYLE_SOURCE\u003c/code\u003e . By \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/814\"\u003eBrianPugh/cyclopts#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.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/BrianPugh/cyclopts/commit/ea77abc99ef67dc4da21548d3b2ff2150c265afe\"\u003e\u003ccode\u003eea77abc\u003c/code\u003e\u003c/a\u003e fix zsh completion recursion when prog_name matches a builtin helper\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/e297647b12b71155d01f87e8e1d5e008c90962b6\"\u003e\u003ccode\u003ee297647\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/824\"\u003e#824\u003c/a\u003e from SAY-5/docs-fix-typer-option-import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/923a5648ed221c1f7683810851c4ade348149fa4\"\u003e\u003ccode\u003e923a564\u003c/code\u003e\u003c/a\u003e docs: add missing typer Option imports in flag negation examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ddb9cc2ec53ad103a4525e399afa92188ac81ae3\"\u003e\u003ccode\u003eddb9cc2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/823\"\u003e#823\u003c/a\u003e from BrianPugh/fish-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/bd56e32b839d9b90e060b1fd88105985194887db\"\u003e\u003ccode\u003ebd56e32\u003c/code\u003e\u003c/a\u003e fix fish completion for positional args and run fish tests in ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/fba7293a546d7569f8cb74a85badc0a8f9401691\"\u003e\u003ccode\u003efba7293\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/822\"\u003e#822\u003c/a\u003e from BrianPugh/arm-ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/17e22f16883a7132b9d9bc12dc18c16b726d8a73\"\u003e\u003ccode\u003e17e22f1\u003c/code\u003e\u003c/a\u003e skip global zsh rcs in completion tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/4cc78acd473f09d1e6267ed92f3ca24358c4b8cd\"\u003e\u003ccode\u003e4cc78ac\u003c/code\u003e\u003c/a\u003e install zsh in linux ci runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5c87c2752b494e9486f422d48473d206cd6ab66e\"\u003e\u003ccode\u003e5c87c27\u003c/code\u003e\u003c/a\u003e add ubuntu-24.04-arm to the CI testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/be2b4295f4632315ae1e49c8f3799bc71086a751\"\u003e\u003ccode\u003ebe2b429\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/819\"\u003e#819\u003c/a\u003e from BrianPugh/pep-692\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.15.0...v4.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.3 to 7.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\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/tkem/cachetools/commit/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e Release v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e Update build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e Add threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e Run threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 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\u003c!-- 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/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.136.1...0.136.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.47.0 to 0.48.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.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults 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/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\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/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\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.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.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.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/73e84e58d7f6b8b3dfd8a9e3e42d716862250f33\"\u003e\u003ccode\u003e73e84e5\u003c/code\u003e\u003c/a\u003e Version 0.48.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45ea11690b4a62fa6df339d2b6ee3b8545a418e0\"\u003e\u003ccode\u003e45ea116\u003c/code\u003e\u003c/a\u003e Ignore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dd4394c3cbfd9f27a696a7b08047149690058158\"\u003e\u003ccode\u003edd4394c\u003c/code\u003e\u003c/a\u003e chore(deps): bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/abe07818a191cd036dc3824d802d052207e01c7e\"\u003e\u003ccode\u003eabe0781\u003c/code\u003e\u003c/a\u003e Default \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydocket` from 0.20.3 to 0.21.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chrisguidry/docket/releases\"\u003epydocket's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.21.1 - Eight misbehavin'\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eredis-py==8.0.0\u003c/code\u003e changed a default timeout that broke long-lived blocking connections (like pubsub and streams).  With this release, that's fixed and we support (and have tests for) redis-py 5.x, 6.x, 7.x, and 8.x\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport redis-py 8, and make CI actually exercise it by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/427\"\u003echrisguidry/docket#427\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\"\u003ehttps://github.com/chrisguidry/docket/compare/0.21.0...0.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.21.0 - Don't Call Me\u003c/h2\u003e\n\u003cp\u003eThis is a performance-tuning release focused on reducing how chatty Docket is with Redis, and folding several separate operations into single pipelines and scripts.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump idna from 3.11 to 3.15 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/chrisguidry/docket/pull/418\"\u003echrisguidry/docket#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pymdown-extensions from 10.21.2 to 10.21.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/chrisguidry/docket/pull/417\"\u003echrisguidry/docket#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the all-dependencies group across 1 directory with 14 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/chrisguidry/docket/pull/416\"\u003echrisguidry/docket#416\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache Lua scripts at module scope to skip per-call SHA work by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/419\"\u003echrisguidry/docket#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold state PUBLISH into the per-task Lua scripts by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/420\"\u003echrisguidry/docket#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFold the rest of the task-completion path into _terminal by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/421\"\u003echrisguidry/docket#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePost-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/422\"\u003echrisguidry/docket#422\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLock in regression coverage for implicit invariants in the recent Lua refactor by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/423\"\u003echrisguidry/docket#423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.0\"\u003ehttps://github.com/chrisguidry/docket/compare/0.20.3...0.21.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/chrisguidry/docket/commit/cfafd7e3d8b4dd20d237b237c2b4ce78dc69ad5b\"\u003e\u003ccode\u003ecfafd7e\u003c/code\u003e\u003c/a\u003e Support redis-py 8, and make CI actually exercise it (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/11ebbcd7731441c0460b00d41bdbaeb5072069bb\"\u003e\u003ccode\u003e11ebbcd\u003c/code\u003e\u003c/a\u003e Lock in regression coverage for implicit invariants in the recent Lua refacto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/bf1fa2afc122968b6a0845e7b7edc5f112c0a79d\"\u003e\u003ccode\u003ebf1fa2a\u003c/code\u003e\u003c/a\u003e Post-release review fixes for \u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e/\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/422\"\u003e#422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/b82ef829c704d4a102b3e2b11fabf69d118e3673\"\u003e\u003ccode\u003eb82ef82\u003c/code\u003e\u003c/a\u003e Fold the rest of the task-completion path into _terminal (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/421\"\u003e#421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/1cdb6dfffe8791684f3b0abe94751a54aaa8dc63\"\u003e\u003ccode\u003e1cdb6df\u003c/code\u003e\u003c/a\u003e Fold state PUBLISH into the per-task Lua scripts (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/420\"\u003e#420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/e95be4a45bdf87cd4c67c9c9a5fd5db83d4c8136\"\u003e\u003ccode\u003ee95be4a\u003c/code\u003e\u003c/a\u003e Cache Lua scripts at module scope to skip per-call SHA work (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/419\"\u003e#419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/718df97071c73b84ce9b6afcd49e51b75fcbe69f\"\u003e\u003ccode\u003e718df97\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group across 1 directory with 14 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/416\"\u003e#416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/ea4077df41e2e2451f7767ced4db0aaef1c2d5c2\"\u003e\u003ccode\u003eea4077d\u003c/code\u003e\u003c/a\u003e Bump pymdown-extensions from 10.21.2 to 10.21.3 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/417\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/6d015281dee243fcbc9e359fdd204b0926704b02\"\u003e\u003ccode\u003e6d01528\u003c/code\u003e\u003c/a\u003e Bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/418\"\u003e#418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.3...0.21.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.11.15 to 0.11.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.17\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-28.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a diagnostic for \u003ccode\u003euv add\u003c/code\u003e with standard library modules (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19572\"\u003e#19572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003euv workspace\u003c/code\u003e and its \u003ccode\u003elist\u003c/code\u003e subcommand in help output (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19533\"\u003e#19533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the \u0026quot;403 forbidden\u0026quot; hint to suggest \u003ccode\u003eignore-error-codes\u003c/code\u003e when applicable (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19521\"\u003e#19521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip direct URL lock freshness checks while offline (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19596\"\u003e#19596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eimport-names\u003c/code\u003e and \u003ccode\u003eimport-namespaces\u003c/code\u003e support to \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://peps.python.org/pep-0794/\"\u003ePEP 794\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19380\"\u003e#19380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--no-editable-package\u003c/code\u003e flag to various commands (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19584\"\u003e#19584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer Python version requests from source trees in \u003ccode\u003euv tool\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19577\"\u003e#19577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd module owners to \u003ccode\u003euv workspace metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19122\"\u003e#19122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not allow \u003ccode\u003euv venv --clear\u003c/code\u003e to remove non-virtual environments (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19595\"\u003e#19595\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of large entries in \u003ccode\u003etool.uv.conflicts\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19538\"\u003e#19538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid modifying the parent process' env with \u003ccode\u003e--env-file\u003c/code\u003e in \u003ccode\u003euv run\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19567\"\u003e#19567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix script environment creation for scripts with long filenames (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19539\"\u003e#19539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix transitive Git archive dependencies in lockfiles (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19589\"\u003e#19589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve Git repository URLs in direct URL metadata (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19590\"\u003e#19590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport redirects in \u003ccode\u003e--check-url\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19594\"\u003e#19594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept case-insensitive HTML tags in \u003ccode\u003e--find-links\u003c/code\u003e parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19537\"\u003e#19537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate script metadata blocks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19544\"\u003e#19544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan names like \u0026quot;python3\u0026quot; as script entry points (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19535\"\u003e#19535\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19536\"\u003e#19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate Git LFS artifacts for Git archives (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19592\"\u003e#19592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a relative path when creating symlinks in cache to improve relocatability (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19033\"\u003e#19033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix malformed positional anchors in the CLI reference (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19575\"\u003e#19575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall uv 0.11.17\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/uv/releases/download/0.11.17/uv-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/uv/releases/download/0.11.17/uv-installer.ps1 | iex\u0026quot;\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/blob/main/CHANGELOG.md\"\u003euv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.17\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-28.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a diagnostic for \u003ccode\u003euv add\u003c/code\u003e with standard library modules (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19572\"\u003e#19572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003euv workspace\u003c/code\u003e and its \u003ccode\u003elist\u003c/code\u003e subcommand in help output (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19533\"\u003e#19533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the \u0026quot;403 forbidden\u0026quot; hint to suggest \u003ccode\u003eignore-error-codes\u003c/code\u003e when applicable (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19521\"\u003e#19521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip direct URL lock freshness checks while offline (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19596\"\u003e#19596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eimport-names\u003c/code\u003e and \u003ccode\u003eimport-namespaces\u003c/code\u003e support to \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://peps.python.org/pep-0794/\"\u003ePEP 794\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19380\"\u003e#19380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--no-editable-package\u003c/code\u003e flag to various commands (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19584\"\u003e#19584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer Python version requests from source trees in \u003ccode\u003euv tool\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19577\"\u003e#19577\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd module owners to \u003ccode\u003euv workspace metadata\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19122\"\u003e#19122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDo not allow \u003ccode\u003euv venv --clear\u003c/code\u003e to remove non-virtual environments (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19595\"\u003e#19595\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of large entries in \u003ccode\u003etool.uv.conflicts\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19538\"\u003e#19538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid modifying the parent process' env with \u003ccode\u003e--env-file\u003c/code\u003e in \u003ccode\u003euv run\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19567\"\u003e#19567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix script environment creation for scripts with long filenames (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19539\"\u003e#19539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix transitive Git archive dependencies in lockfiles (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19589\"\u003e#19589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve Git repository URLs in direct URL metadata (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19590\"\u003e#19590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport redirects in \u003ccode\u003e--check-url\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19594\"\u003e#19594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept case-insensitive HTML tags in \u003ccode\u003e--find-links\u003c/code\u003e parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19537\"\u003e#19537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject duplicate script metadata blocks (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19544\"\u003e#19544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan names like \u0026quot;python3\u0026quot; as script entry points (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19535\"\u003e#19535\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19536\"\u003e#19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate Git LFS artifacts for Git archives (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19592\"\u003e#19592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse a relative path when creating symlinks in cache to improve relocatability (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19033\"\u003e#19033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix malformed positional anchors in the CLI reference (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19575\"\u003e#19575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust hint rendering (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18936\"\u003e#18936\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/uv/commit/a33a629d66753e9722a0040212c004ba66ad04b4\"\u003e\u003ccode\u003ea33a629\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.17 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19599\"\u003e#19599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/7472df8d52db05ea304652133869cccbf6115700\"\u003e\u003ccode\u003e7472df8\u003c/code\u003e\u003c/a\u003e Update conda-incubator/setup-miniconda action to v4 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19233\"\u003e#19233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/484ba3905d0225ef1288ac46bc53ac5018596a58\"\u003e\u003ccode\u003e484ba39\u003c/code\u003e\u003c/a\u003e Do not allow \u003ccode\u003euv venv --clear\u003c/code\u003e to remove non-virtual environments (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19595\"\u003e#19595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/71ae411ae1b53ad2a5bef0d7c0f49cfbbc48ba06\"\u003e\u003ccode\u003e71ae411\u003c/code\u003e\u003c/a\u003e Add a diagnostic for \u003ccode\u003euv add\u003c/code\u003e with standard library modules (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19572\"\u003e#19572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/28cb0929095aac0ce097d4b97c3935d4e48b7755\"\u003e\u003ccode\u003e28cb092\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--no-editable-package\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19584\"\u003e#19584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/5a0b932474304d8da37ee169db02c866291dd61f\"\u003e\u003ccode\u003e5a0b932\u003c/code\u003e\u003c/a\u003e Support redirects in \u003ccode\u003e--check-url\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19594\"\u003e#19594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/995b41e850ce0116141f4066e3f93e6d49dc39b9\"\u003e\u003ccode\u003e995b41e\u003c/code\u003e\u003c/a\u003e Encapsulate Git HTTP fetch settings (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19597\"\u003e#19597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/727d2b84f20d6c78e12d4c12f750d973f695e334\"\u003e\u003ccode\u003e727d2b8\u003c/code\u003e\u003c/a\u003e Add module owners to workspace metadata (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19122\"\u003e#19122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/4e25ecad0d7c33e8b00dcf84af54ff54fe30e3e7\"\u003e\u003ccode\u003e4e25eca\u003c/code\u003e\u003c/a\u003e Skip direct URL lock freshness checks while offline (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19596\"\u003e#19596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/da5f6a6967b41423fb2a61bf094adff4e403367c\"\u003e\u003ccode\u003eda5f6a6\u003c/code\u003e\u003c/a\u003e Infer Python version requests from source trees in \u003ccode\u003euv tool\u003c/code\u003e invocations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19\"\u003e#19\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/uv/compare/0.11.15...0.11.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.4.0 to 8.0.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\u003e8.0.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync Cluster PubSub\u003c/h3\u003e\n\u003cp\u003eThis release introduces full \u003cstrong\u003easyncio Cluster PubSub support\u003c/strong\u003e, bringing shard-channel capabilities (\u003ccode\u003eSSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSUNSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSPUBLISH\u003c/code\u003e) to the async \u003ccode\u003eRedisCluster\u003c/code\u003e client. The new \u003ccode\u003eClusterPubSub\u003c/code\u003e class in \u003ccode\u003eredis.asyncio.cluster\u003c/code\u003e automatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance via \u003ccode\u003eRedisCluster.pubsub()\u003c/code\u003e and use \u003ccode\u003essubscribe()\u003c/code\u003e, \u003ccode\u003esunsubscribe()\u003c/code\u003e, and \u003ccode\u003eget_sharded_message()\u003c/code\u003e just as they would with the sync cluster client.\u003c/p\u003e\n\u003ch3\u003eKeyspace and subkey notifications\u003c/h3\u003e\n\u003cp\u003eRedis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes — \u003ccode\u003eKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eClusterKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eAsyncKeyspaceNotifications\u003c/code\u003e, and \u003ccode\u003eAsyncClusterKeyspaceNotifications\u003c/code\u003e — provide a high-level API for keyspace/keyevent subscriptions and subkey notification families: \u003ccode\u003esubkeyspace\u003c/code\u003e, \u003ccode\u003esubkeyevent\u003c/code\u003e, \u003ccode\u003esubkeyspaceitem\u003c/code\u003e, and \u003ccode\u003esubkeyspaceevent\u003c/code\u003e. Convenience methods like \u003ccode\u003esubscribe_keyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_keyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspaceitem()\u003c/code\u003e, and \u003ccode\u003esubscribe_subkeyspaceevent()\u003c/code\u003e simplify common patterns, with channel classes for both key and subkey channels.\u003c/p\u003e\n\u003cp\u003eIn cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync \u003ccode\u003erun_in_thread()\u003c/code\u003e and async \u003ccode\u003elisten()\u003c/code\u003e workflows are supported.\u003c/p\u003e\n\u003ch3\u003eRedis Array commands(\u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003ehttps://redis.io/docs/latest/develop/data-types/arrays/\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eredis-py now supports \u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003eRedis Arrays\u003c/a\u003e, a preview Redis data type for sparse, index-addressable sequences of strings. New \u003ccode\u003eAR*\u003c/code\u003e command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, including \u003ccode\u003eARGET\u003c/code\u003e, \u003ccode\u003eARSET\u003c/code\u003e, \u003ccode\u003eARMGET\u003c/code\u003e, \u003ccode\u003eARMSET\u003c/code\u003e, \u003ccode\u003eARSCAN\u003c/code\u003e, \u003ccode\u003eARGREP\u003c/code\u003e, \u003ccode\u003eARRING\u003c/code\u003e, and \u003ccode\u003eAROP\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eType Hints Improvements (breaking changes)\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003e@overload\u003c/code\u003e pattern has been applied systematically across \u003cstrong\u003ecore commands\u003c/strong\u003e (\u003ccode\u003ecore.py\u003c/code\u003e), \u003cstrong\u003eVectorSet commands\u003c/strong\u003e, and \u003cstrong\u003emodule commands\u003c/strong\u003e (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combined \u003ccode\u003eResponseT\u003c/code\u003e (i.e., \u003ccode\u003eUnion[Awaitable[Any], Any]\u003c/code\u003e), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g., \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003elist[str]\u003c/code\u003e) while async clients see \u003ccode\u003eAwaitable[...]\u003c/code\u003e wrappers. This is a \u003cstrong\u003ebreaking change for type-checking only\u003c/strong\u003e—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types, \u003ccode\u003eSyncClientProtocol\u003c/code\u003e and \u003ccode\u003eAsyncClientProtocol\u003c/code\u003e, are used in overload signatures to enable this distinction.\u003c/p\u003e\n\u003ch3\u003eRESP3 by default with opt-in unified responses\u003c/h3\u003e\n\u003cp\u003eredis-py 8.0.0 now uses RESP3 on the wire by default while preserving legacy RESP2-compatible Python response shapes for existing applications (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4052\"\u003e#4052\u003c/a\u003e). Protocol-independent unified response shapes are available by setting \u003ccode\u003elegacy_responses=False\u003c/code\u003e, so affected commands return the same Python structure with RESP2 or RESP3.\u003c/p\u003e\n\u003cp\u003eUse \u003ccode\u003eprotocol=2\u003c/code\u003e to force RESP2 on the wire, \u003ccode\u003eprotocol=3\u003c/code\u003e to opt into native RESP3 response shapes, or \u003ccode\u003elegacy_responses=False\u003c/code\u003e to migrate to unified responses. See \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\u003c/code\u003e\u003c/a\u003e for the affected commands and migration details.\u003c/p\u003e\n\u003ch3\u003eConnection and retry defaults\u003c/h3\u003e\n\u003cp\u003eDefault connection settings were updated: \u003ccode\u003esocket_timeout\u003c/code\u003e and \u003ccode\u003esocket_connect_timeout\u003c/code\u003e now default to 5 seconds, TCP keepalive is enabled by default, socket reads use a 32 KB buffer, connection pools default to \u003ccode\u003emax_connections=100\u003c/code\u003e, and retry defaults now use 10 attempts with exponential jitter backoff.\u003c/p\u003e\n\u003cp\u003eNote: \u003ccode\u003esocket_timeout\u003c/code\u003e can affect blocking commands such as \u003ccode\u003eBLPOP\u003c/code\u003e/\u003ccode\u003eBRPOP\u003c/code\u003e; if a command blocks longer than the client socket timeout, it may raise \u003ccode\u003eTimeoutError\u003c/code\u003e before the command timeout elapses (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/2807\"\u003e#2807\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for new array commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4055\"\u003e#4055\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Cluster PubSub in asyncio (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3736\"\u003e#3736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Redis Keyspace Notifications Support for Redis Cluster (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd random load balancing strategy which allows for use of the primary (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4027\"\u003e#4027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd FPHA (floating-point homogeneous array) arg support to JSON.SET (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4011\"\u003e#4011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom Claude command + XNACK command support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4030\"\u003e#4030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding Time Series Multiple Aggregators support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new COUNT aggregator for some sorted set commands - ZINTER, ZINTERSTORE, ZUNION, ZUNIONSTORE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4034\"\u003e#4034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new INCREX command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4067\"\u003e#4067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for PubSub subscriptions with binary channel names and handlers (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4068\"\u003e#4068\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/redis/redis-py/commit/733f80ec633d6a772a6e1ccb1c0cca6fc1afb4b6\"\u003e\u003ccode\u003e733f80e\u003c/code\u003e\u003c/a\u003e Updates in default connection and retry settings (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4082\"\u003e#4082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a68a16c296591e902d0c749d31781550048f280f\"\u003e\u003ccode\u003ea68a16c\u003c/code\u003e\u003c/a\u003e Updating Redis supported versions in README.md and lib version to 8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43a41d3d2956aa69eb0041655067ffaaaf23c6c3\"\u003e\u003ccode\u003e43a41d3\u003c/code\u003e\u003c/a\u003e Updating INCREX command arg - SATURATE now controls overflow behaviour (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/1496deba3801605cb123cb1b67adda50e85cd1e5\"\u003e\u003ccode\u003e1496deb\u003c/code\u003e\u003c/a\u003e Preserve explicit None for client metadata config (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4081\"\u003e#4081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/57dc08c550f82086afeaa68a7cd7e5df356f7217\"\u003e\u003ccode\u003e57dc08c\u003c/code\u003e\u003c/a\u003e Avoid zero-timeout async reads in hiredis connections readiness checks and re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd54ddd25aa307dc7f05bc0e4387cfc294c0a4c8\"\u003e\u003ccode\u003ecd54ddd\u003c/code\u003e\u003c/a\u003e fix(typing): correct type annotation for XReadResponse (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4046\"\u003e#4046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ab2d41fcf0f9477ac788822d7c430004076a27f2\"\u003e\u003ccode\u003eab2d41f\u003c/code\u003e\u003c/a\u003e Add support for PubSub subscriptions with binary channel names and handlers (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ef24dc99b6f2aa9507f19aa4ce4be37745ed6c77\"\u003e\u003ccode\u003eef24dc9\u003c/code\u003e\u003c/a\u003e Randomize cluster startup node order during topology refresh (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4060\"\u003e#4060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b604015aeb5abce4b576f9dc54ffe30a3f1ba8c6\"\u003e\u003ccode\u003eb604015\u003c/code\u003e\u003c/a\u003e Add CLAUDE.md and /sync-claude-md skill for managing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4066\"\u003e#4066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b8b4fcc9986fbc1f188cc6a355d12eec814ee90\"\u003e\u003ccode\u003e2b8b4fc\u003c/code\u003e\u003c/a\u003e Fix flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4071\"\u003e#4071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.4.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `virtualenv` from 21.3.3 to 21.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/releases\"\u003evirtualenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e21.4.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(create): debug build venvlauncher lookup on Windows 3.13+ by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3151\"\u003epypa/virtualenv#3151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/21.4.0...21.4.1\"\u003ehttps://github.com/pypa/virtualenv/compare/21.4.0...21.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e21.4.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Mermaid flowchart rendering by \u003ca href=\"https://github.com/Herrtian\"\u003e\u003ccode\u003e@​Herrtian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3147\"\u003epypa/virtualenv#3147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ refactor(create): remove dead code and document droppable paths by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3149\"\u003epypa/virtualenv#3149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(create): support Windows debug builds and remove dead code by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3150\"\u003epypa/virtualenv#3150\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/Herrtian\"\u003e\u003ccode\u003e@​Herrtian\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/3147\"\u003epypa/virtualenv#3147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/21.3.3...21.4.0\"\u003ehttps://github.com/pypa/virtualenv/compare/21.3.3...21.4.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/pypa/virtualenv/blob/main/docs/changelog.rst\"\u003evirtualenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBugfixes - 21.4.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix Windows debug build \u003ccode\u003evenvlauncher_d.exe\u003c/code\u003e substitution never triggering because \u003ccode\u003eexecutables()\u003c/code\u003e compared the\nsource executable name instead of the target name, and fix \u003ccode\u003eAttributeError\u003c/code\u003e on \u003ccode\u003edebug_build\u003c/code\u003e attribute for\ninterpreter info objects missing the field - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3151\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev21.4.0 (2026-05-28)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 21.4.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove dead code targeting Python versions below the supported target range (PyPy 3.6, deprecated importlib APIs) and\nsimplify the runtime import hook in \u003ccode\u003e_virtualenv.py\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3149\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Windows debug builds (\u003ccode\u003epython_d.exe\u003c/code\u003e, \u003ccode\u003evenvlauncher_d.exe\u003c/code\u003e) matching CPython venv behavior, remove dead\n\u003ccode\u003e__SCRIPT_DIR__\u003c/code\u003e replacement and \u003ccode\u003ehas_shim\u003c/code\u003e version guard, drop unreachable Python 3.7 branch from\n\u003ccode\u003epyvenv_launch_patch_active\u003c/code\u003e, and fix wheel deprecation message to say \u003ccode\u003e\u0026gt;= 3.9\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev21.3.3 (2026-05-13)\u003c/p\u003e\n\u003chr /\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/pypa/virtualenv/commit/e88f194c574fba787a9f44a0568042974d45a539\"\u003e\u003ccode\u003ee88f194\u003c/code\u003e\u003c/a\u003e release 21.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/6a2d79cd8077035a8a9d08b8501975eead13b496\"\u003e\u003ccode\u003e6a2d79c\u003c/code\u003e\u003c/a\u003e 🐛 fix(create): debug build venvlauncher lookup on Windows 3.13+ (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/3151\"\u003e#3151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/30bcf62a65d262b85f3272a7f9b91397f712a13b\"\u003e\u003ccode\u003e30bcf62\u003c/code\u003e\u003c/a\u003e release 21.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/61434984154e4474c478301e433071efd880ad8c\"\u003e\u003ccode\u003e6143498\u003c/code\u003e\u003c/a\u003e ✨ feat(create): support Windows debug builds and remove dead code (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/3150\"\u003e#3150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/ceaf88f8736c253ca71d155bb08b8475deebda02\"\u003e\u003ccode\u003eceaf88f\u003c/code\u003e\u003c/a\u003e ♻️ refactor(create): remove dead code and document droppable paths (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/3149\"\u003e#3149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/Beaconchain-us/prefect/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaconchain-us%2Fprefect/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":"the python-dependencies group","pr_created_at":"2026-05-29T04:46:28.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4545740541","node_id":"PR_kwDODBvuXM7ggOhg","number":4211,"state":"open","title":"build(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3 in the python-dependencies group","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-05-29T04:46:28.000Z","updated_at":"2026-05-29T04:53:47.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":"the python-dependencies group","ecosystem":"pip"},"body":"Bumps the python-dependencies group with 1 update: [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed).\n\nUpdates `pytest-codspeed` from 5.0.2 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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 \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/schemathesis/schemathesis/pull/4211","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/schemathesis%2Fschemathesis/issues/4211","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4211/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-26T04:31:16.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4521373238","node_id":"PR_kwDOJDpYW87fQ652","number":231,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","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-05-26T04:31:16.000Z","updated_at":"2026-05-26T04:32:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/ulid-transform/pull/231","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fulid-transform/issues/231","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/231/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-26T01:08:48.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4520496704","node_id":"PR_kwDOJSb29M7fODrE","number":135,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","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-05-26T01:08:48.000Z","updated_at":"2026-05-26T01:09:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/fnv-hash-fast/pull/135","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Ffnv-hash-fast/issues/135","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/135/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-25T20:03:31.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4519252731","node_id":"PR_kwDOH945bc7fKA7h","number":722,"state":"closed","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T20:08:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T20:03:31.000Z","updated_at":"2026-05-25T20:09:01.000Z","time_to_close":328,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/dbus-fast/pull/722","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fdbus-fast/issues/722","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/722/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-25T07:08:15.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4515009670","node_id":"PR_kwDOHpWZ4M7e8ShZ","number":281,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","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-05-25T07:08:15.000Z","updated_at":"2026-05-25T07:09:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/bluetooth-data-tools/pull/281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fbluetooth-data-tools/issues/281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/281/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-25T00:15:55.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4513413081","node_id":"PR_kwDOK0-cR87e3PMJ","number":494,"state":"closed","title":"chore(deps-dev): bump pytest-codspeed from 5.0.2 to 5.0.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T00:18:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T00:15:55.000Z","updated_at":"2026-05-25T00:19:30.000Z","time_to_close":179,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/Bluetooth-Devices/habluetooth/pull/494","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fhabluetooth/issues/494","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/494/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-24T18:25:58.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4512532378","node_id":"PR_kwDOSXLGM87e0lKU","number":11,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-31T04:32:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-24T18:25:58.000Z","updated_at":"2026-05-31T04:32:19.000Z","time_to_close":554779,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":6,"packages":[{"name":"click","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"cachetools","old_version":"7.1.3","new_version":"7.1.4","repository_url":"https://github.com/tkem/cachetools"},{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.47.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uv","old_version":"0.11.15","new_version":"0.11.16","repository_url":"https://github.com/astral-sh/uv"},{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.4.0` | `8.4.1` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.1.3` | `7.1.4` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.1` | `0.136.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.47.0` | `0.48.0` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.15` | `0.11.16` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `5.0.2` | `5.0.3` |\n\n\nUpdates `click` from 8.4.0 to 8.4.1\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.4.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.1 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.4.1/\"\u003ehttps://pypi.org/project/click/8.4.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/32?closed=1\"\u003ehttps://github.com/pallets/click/milestone/32?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type conversion again. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3458\"\u003e#3458\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3277\"\u003e#3277\u003c/a\u003e # 3466\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion result. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3015\"\u003e#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3487\"\u003e#3487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3449\"\u003e#3449\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.4.1\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eget_parameter_source()\u003c/code\u003e is available during eager callbacks and type\nconversion again. :issue:\u003ccode\u003e3458\u003c/code\u003e :issue:\u003ccode\u003e3484\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZsh completion scripts parse correctly on Windows. :issue:\u003ccode\u003e3277\u003c/code\u003e :pr:\u003ccode\u003e3466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShell completion of \u003ccode\u003eChoice\u003c/code\u003e \u003ccode\u003eEnum\u003c/code\u003e values produces a valid completion\nresult. :issue:\u003ccode\u003e3015\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix empty byte-string handling in echo. :issue:\u003ccode\u003e3487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix closed file error with \u003ccode\u003eecho_via_pager\u003c/code\u003e. :issue:\u003ccode\u003e3449\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/6eeb50e948ea136db145280f6f5dd52eca3fa7e5\"\u003e\u003ccode\u003e6eeb50e\u003c/code\u003e\u003c/a\u003e release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f\"\u003e\u003ccode\u003e67921d5\u003c/code\u003e\u003c/a\u003e change log and doc fixes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3495\"\u003e#3495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1\"\u003e\u003ccode\u003e9c41f46\u003c/code\u003e\u003c/a\u003e Fix changelog and version admonitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6\"\u003e\u003ccode\u003e6cb3477\u003c/code\u003e\u003c/a\u003e fix skip condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37\"\u003e\u003ccode\u003e5ee8e31\u003c/code\u003e\u003c/a\u003e fix I/O operation on closed file error with CliRunner and echo_via_pager (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3482\"\u003e#3482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f\"\u003e\u003ccode\u003ebecbde5\u003c/code\u003e\u003c/a\u003e pager doesn't close std streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77\"\u003e\u003ccode\u003ea5f5aa6\u003c/code\u003e\u003c/a\u003e Handle empty bytes in echo (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3493\"\u003e#3493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2\"\u003e\u003ccode\u003e4d3db84\u003c/code\u003e\u003c/a\u003e handle empty bytes in echo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5\"\u003e\u003ccode\u003ed42f15b\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eget_parameter_source()\u003c/code\u003e during type conversion and eager callbacks (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3484\"\u003e#3484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1\"\u003e\u003ccode\u003e0baa8db\u003c/code\u003e\u003c/a\u003e Document ctx.params bypass with test and doc\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.4.0...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.1.3 to 7.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.4 (2026-05-22)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor unit test improvements.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate build environment.\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/tkem/cachetools/commit/48284d73d0a8834c9c50f8d41bb99e6f93b2dfed\"\u003e\u003ccode\u003e48284d7\u003c/code\u003e\u003c/a\u003e Release v7.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/55ea96b88a485fca9effae0f838186274f00897c\"\u003e\u003ccode\u003e55ea96b\u003c/code\u003e\u003c/a\u003e Update build environment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/c5439fe5dc883220b59469e450dbcbf9f4c2e52d\"\u003e\u003ccode\u003ec5439fe\u003c/code\u003e\u003c/a\u003e Add threading tests for lock-only decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/91828fccd629d426157a165d38563614ba06a875\"\u003e\u003ccode\u003e91828fc\u003c/code\u003e\u003c/a\u003e Run threading tests unconditionally with timeout.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.1.3...v7.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.1 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\u003c!-- 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/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.136.1...0.136.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.47.0 to 0.48.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.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults 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/2940\"\u003eKludex/uvicorn#2940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\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/uvicorn/pull/2944\"\u003eKludex/uvicorn#2944\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.47.0...0.48.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.47.0...0.48.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.48.0 (May 24, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDefault \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\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/73e84e58d7f6b8b3dfd8a9e3e42d716862250f33\"\u003e\u003ccode\u003e73e84e5\u003c/code\u003e\u003c/a\u003e Version 0.48.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45ea11690b4a62fa6df339d2b6ee3b8545a418e0\"\u003e\u003ccode\u003e45ea116\u003c/code\u003e\u003c/a\u003e Ignore duplicate forwarding headers in \u003ccode\u003eProxyHeadersMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2944\"\u003e#2944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dd4394c3cbfd9f27a696a7b08047149690058158\"\u003e\u003ccode\u003edd4394c\u003c/code\u003e\u003c/a\u003e chore(deps): bump idna from 3.11 to 3.15 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2941\"\u003e#2941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/abe07818a191cd036dc3824d802d052207e01c7e\"\u003e\u003ccode\u003eabe0781\u003c/code\u003e\u003c/a\u003e Default \u003ccode\u003essl_ciphers\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e and use OpenSSL defaults (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.11.15 to 0.11.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust hint rendering (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling reading the system config with \u003ccode\u003eUV_NO_SYSTEM_CONFIG\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19476\"\u003e#19476\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow environment variables that take a list to be empty (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19503\"\u003e#19503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure that incompatible wheel hints do not leak secrets (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19504\"\u003e#19504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject unsafe entry points in \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19495\"\u003e#19495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict delimiters in entry point parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19471\"\u003e#19471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euv-netrc: fix multi-word no-space comment lines causing parse errors (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19494\"\u003e#19494\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument and test relative exclude-newer support for uv pip (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19475\"\u003e#19475\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall uv 0.11.16\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/uv/releases/download/0.11.16/uv-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/uv/releases/download/0.11.16/uv-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload uv 0.11.16\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.16/uv-aarch64-apple-darwin.tar.gz\"\u003euv-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/uv/releases/download/0.11.16/uv-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- 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/uv/blob/main/CHANGELOG.md\"\u003euv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust hint rendering (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18090\"\u003e#18090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003euv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling reading the system config with \u003ccode\u003eUV_NO_SYSTEM_CONFIG\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19476\"\u003e#19476\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow environment variables that take a list to be empty (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19503\"\u003e#19503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure that incompatible wheel hints do not leak secrets (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19504\"\u003e#19504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject unsafe entry points in \u003ccode\u003euv-build\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19495\"\u003e#19495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict delimiters in entry point parsing (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19471\"\u003e#19471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euv-netrc: fix multi-word no-space comment lines causing parse errors (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19494\"\u003e#19494\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument and test relative exclude-newer support for uv pip (\u003ca href=\"https://redirect.github.com/astral-sh/uv/pull/19475\"\u003e#19475\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/astral-sh/uv/commit/135a3636789bb6886e0a7876f58cb4dbb270ba6d\"\u003e\u003ccode\u003e135a363\u003c/code\u003e\u003c/a\u003e Bump version to 0.11.16 (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19522\"\u003e#19522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/3b5f99412c7050f1050c09d2b7a48f82c333adfa\"\u003e\u003ccode\u003e3b5f994\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003euv lock\u003c/code\u003e check to CI (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19524\"\u003e#19524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/4ffb506acf2b3d4dfd9a343a3cee53abe63a4de7\"\u003e\u003ccode\u003e4ffb506\u003c/code\u003e\u003c/a\u003e Improve crates.io new crate error message (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19523\"\u003e#19523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/51ba989e678ba1558ed48e1ea3e66d01a6dc30b3\"\u003e\u003ccode\u003e51ba989\u003c/code\u003e\u003c/a\u003e Add support for direct archive dependencies in Git (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/10072\"\u003e#10072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/c07a6efb380b2ecd39161194aa7f3bb5d3f967ca\"\u003e\u003ccode\u003ec07a6ef\u003c/code\u003e\u003c/a\u003e Reject locked malware installations (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/58a6734719d19da5335a5985843435745ff93320\"\u003e\u003ccode\u003e58a6734\u003c/code\u003e\u003c/a\u003e Allow environment variables that take a list to be empty (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19503\"\u003e#19503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/c1477e2b0f9e0ef510554ebfdf76aa68d477dfe6\"\u003e\u003ccode\u003ec1477e2\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eUV_NO_SYSTEM_CONFIG\u003c/code\u003e in tests to avoid reading machine-global config (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/4648a0b9e67c2abfd5aa1404d2daeac800b987f5\"\u003e\u003ccode\u003e4648a0b\u003c/code\u003e\u003c/a\u003e uv audit: specialize malformed OSV error (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19515\"\u003e#19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/e2375abfe10d0e2326bf29c5f425b38f71ebf7db\"\u003e\u003ccode\u003ee2375ab\u003c/code\u003e\u003c/a\u003e Test \u003ccode\u003ecreate_junction\u003c/code\u003e changes from \u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19402\"\u003e#19402\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19487\"\u003e#19487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/uv/commit/547bf2f9e7f4ff8b3e8a974e0cad3159ac04bb8c\"\u003e\u003ccode\u003e547bf2f\u003c/code\u003e\u003c/a\u003e Avoid unwrapping from \u003ccode\u003eOnceMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/uv/issues/19510\"\u003e#19510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/uv/compare/0.11.15...0.11.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-codspeed` from 5.0.2 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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/Beaconchain-us/prefect/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beaconchain-us%2Fprefect/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"5.0.2","new_version":"5.0.3","update_type":"patch","path":null,"pr_created_at":"2026-05-22T21:47:53.000Z","version_change":"5.0.2 → 5.0.3","issue":{"uuid":"4505777168","node_id":"PR_kwDOR_MN387egP-Q","number":122,"state":"closed","title":"Bump pytest-codspeed from 5.0.2 to 5.0.3","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-22T21:48:04.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T21:47:53.000Z","updated_at":"2026-05-22T21:48:13.000Z","time_to_close":11,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-codspeed","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"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\nBumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.2 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.2\u0026new-version=5.0.3)](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/mangoRyw/aiohttp-mryw-copy/pull/122","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mangoRyw%2Faiohttp-mryw-copy/issues/122","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/122/packages"}},{"old_version":"4.3.0","new_version":"5.0.3","update_type":"major","path":null,"pr_created_at":"2026-05-22T21:44:30.000Z","version_change":"4.3.0 → 5.0.3","issue":{"uuid":"4505762565","node_id":"PR_kwDONSrOpM7egM9I","number":85,"state":"open","title":"Bump pytest-codspeed from 4.3.0 to 5.0.3","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-05-22T21:44:30.000Z","updated_at":"2026-05-22T21:44:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"5.0.3","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"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\nBumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.3.0 to 5.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: move callgrind skip obj API to instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003eCodSpeedHQ/pytest-codspeed#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.2...v5.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: skip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003eCodSpeedHQ/pytest-codspeed#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: enable free-threaded wheels in cibuildwheel by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003eCodSpeedHQ/pytest-codspeed#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eMacOS walltime profiling is now available with the \u003ca href=\"https://github.com/CodSpeedHQ/codspeed/releases/tag/v4.16.1\"\u003ecodspeed cli v4.16.1\u003c/a\u003e and above.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epytest-codspeed\u003c/code\u003e can now be used in free threaded mode. This has been tested with 3.14t and 3.15t.\nFor this, we have dropped usage of \u003ccode\u003ecffi\u003c/code\u003e in favor of the native extension support.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: bump instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003eCodSpeedHQ/pytest-codspeed#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove CFFI in favor of native extension to support free-threaded mode by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003eCodSpeedHQ/pytest-codspeed#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(hooks): declare native extension free-thread safe by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003eCodSpeedHQ/pytest-codspeed#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: use instrument-hook markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003eCodSpeedHQ/pytest-codspeed#118\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.3] - 2026-05-22\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🏗️ Refactor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks_callgrind_add_obj_skip from C API by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/123\"\u003e#123\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.2] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003e#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.1] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e💼 Other\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003e#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.0] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare native extension free-thread safe (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/120\"\u003e#120\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003e#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove cffi in favor of native extension by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚡ Performance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBind callgrind start/stop directly to avoid extra frame by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003e#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore common compilation warnings for instrument-hooks by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003e#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse unsigned bash in the macos test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pinned uv version to 0.11.14 by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.15 and 3.15t to test matrix by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14.t in test suite by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/119\"\u003e#119\u003c/a\u003e) by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003e#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\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/CodSpeedHQ/pytest-codspeed/commit/b2d12d8e96704c82b449d8668818a754ede45c66\"\u003e\u003ccode\u003eb2d12d8\u003c/code\u003e\u003c/a\u003e Release v5.0.3 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/31447b7b6fba4ff9a5bdf5c0d046b7d8936cab5c\"\u003e\u003ccode\u003e31447b7\u003c/code\u003e\u003c/a\u003e refactor: use instrument_hooks_callgrind_add_obj_skip from C API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/fc33d2098d7a1296b320b30e9ed14c270ab714b8\"\u003e\u003ccode\u003efc33d20\u003c/code\u003e\u003c/a\u003e Release v5.0.2 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/3bbabe482458518555fa9939902410ae8cf1baa8\"\u003e\u003ccode\u003e3bbabe4\u003c/code\u003e\u003c/a\u003e feat: skip Python runtime objects in callgrind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d4d9dc6ca011bbf6d21640e7c370d3d181f944cf\"\u003e\u003ccode\u003ed4d9dc6\u003c/code\u003e\u003c/a\u003e Release v5.0.1 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ad709a5904ea756c577dcfa91caff67c3cf8777a\"\u003e\u003ccode\u003ead709a5\u003c/code\u003e\u003c/a\u003e build: enable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/080d620ba846adaf6e1b70b96e525e773438034b\"\u003e\u003ccode\u003e080d620\u003c/code\u003e\u003c/a\u003e Release v5.0.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/befdebfba2cdebddd84d6377f8d14d72e0ad4086\"\u003e\u003ccode\u003ebefdebf\u003c/code\u003e\u003c/a\u003e chore: ignore common compilation warnings for instrument-hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ee98055fb69fba4cc62c3822ef3df4c7002352d3\"\u003e\u003ccode\u003eee98055\u003c/code\u003e\u003c/a\u003e chore: use unsigned bash in the macos test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/5a205c8822ca16db400ef25a5d8b51a65c875669\"\u003e\u003ccode\u003e5a205c8\u003c/code\u003e\u003c/a\u003e feat: use instrument_hooks markers in walltime\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v5.0.3\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.3.0\u0026new-version=5.0.3)](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/themartiancompany/propcache/pull/85","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/themartiancompany%2Fpropcache/issues/85","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/85/packages"}},{"old_version":"4.4.0","new_version":"5.0.2","update_type":"major","path":null,"pr_created_at":"2026-05-22T05:26:07.000Z","version_change":"4.4.0 → 5.0.2","issue":{"uuid":"4500080464","node_id":"PR_kwDOLzxzKM7eNvd4","number":342,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 45 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["matmair"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T05:26:07.000Z","updated_at":"2026-05-22T05:28:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":45,"packages":[{"name":"bleach","old_version":"4.1.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"blessed","old_version":"1.38.0","new_version":"1.39.0","repository_url":"https://github.com/jquast/blessed"},{"name":"boto3","old_version":"1.42.96","new_version":"1.43.8","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.96","new_version":"1.43.8","repository_url":"https://github.com/boto/botocore"},{"name":"cryptography","old_version":"47.0.0","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"django","old_version":"5.2.13","new_version":"6.0.5","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.14.3","new_version":"65.16.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-otp","old_version":"1.3.0","new_version":"1.7.0","repository_url":"https://github.com/django-otp/django-otp"},{"name":"django-q2","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/GDay/django-q2"},{"name":"dulwich","old_version":"1.2.0","new_version":"1.2.1","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fonttools","old_version":"4.62.1","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"googleapis-common-protos","old_version":"1.74.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"gunicorn","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"icalendar","old_version":"7.0.3","new_version":"7.1.0","repository_url":"https://github.com/collective/icalendar"},{"name":"idna","old_version":"3.13","new_version":"3.15","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":"nh3","old_version":"0.3.4","new_version":"0.3.5","repository_url":"https://github.com/messense/nh3"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"paramiko","old_version":"4.0.0","new_version":"5.0.0","repository_url":"https://github.com/paramiko/paramiko"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.34.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pypdf","old_version":"6.10.2","new_version":"6.11.0","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"s3transfer","old_version":"0.16.1","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sentry-sdk","old_version":"2.58.0","new_version":"2.60.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-stubs","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"django-stubs-ext","old_version":"6.0.3","new_version":"6.0.4","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"pip","old_version":"26.1","new_version":"26.1.1","repository_url":"https://github.com/pypa/pip"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"python-discovery","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/tox-dev/python-discovery"},{"name":"ty","old_version":"0.0.1a21","new_version":"0.0.35","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-psycopg2","old_version":"2.9.21.20260422","new_version":"2.9.21.20260509","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20260408","new_version":"6.0.12.20260510","repository_url":"https://github.com/python/typeshed"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.3","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 45 updates in the /src/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |\n| [blessed](https://github.com/jquast/blessed) | `1.38.0` | `1.39.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.96` | `1.43.8` |\n| [botocore](https://github.com/boto/botocore) | `1.42.96` | `1.43.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `47.0.0` | `48.0.0` |\n| [django](https://github.com/django/django) | `5.2.13` | `6.0.5` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.14.3` | `65.16.1` |\n| [django-otp](https://github.com/django-otp/django-otp) | `1.3.0` | `1.7.0` |\n| [django-q2](https://github.com/GDay/django-q2) | `1.9.0` | `1.10.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `1.2.0` | `1.2.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.62.1` | `4.63.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.74.0` | `1.75.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.3.0` | `26.0.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.0.3` | `7.1.0` |\n| [idna](https://github.com/kjd/idna) | `3.13` | `3.15` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.4` | `0.3.5` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [paramiko](https://github.com/paramiko/paramiko) | `4.0.0` | `5.0.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.10.2` | `6.11.0` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.1` | `0.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.58.0` | `2.60.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.6.0` | `0.7.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.3` | `6.0.4` |\n| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.0.3` | `6.0.4` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [pip](https://github.com/pypa/pip) | `26.1` | `26.1.1` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `5.0.2` |\n| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.2.2` | `1.3.1` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a21` | `0.0.35` |\n| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260422` | `2.9.21.20260509` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260408` | `6.0.12.20260510` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.3` |\n\n\nUpdates `bleach` from 4.1.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blessed` from 1.38.0 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/jquast/blessed/releases\"\u003eblessed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.17.9: Initial support for Python 3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: Now imports on 3.10+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.15.0: Disable various integration tests, support python 3.7\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e1.14.0: bugfix term.wrap for text containing newlines\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: term.wrap misbehaved for text containing newlines, \u003ca href=\"https://redirect.github.com/jquast/blessed/issues/74\"\u003e#74\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.13.0: new Terminal.split_seqs() function, speed enhancement\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eenhancement: method \u003ccode\u003eTerminal.split_seqs\u003c/code\u003e introduced, and 4x cost reduction in related sequence-aware functions, \u003ca href=\"https://redirect.github.com/jquast/blessed/issues/29\"\u003e#29\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003edeprecated: function \u003ccode\u003eblessed.sequences.measure_length\u003c/code\u003e superseded by \u003ccode\u003eblessed.sequences.iter_parse\u003c/code\u003e if necessary.\u003c/li\u003e\n\u003cli\u003edeprecated: warnings about \u0026quot;binary-packed capabilities\u0026quot; are no longer emitted on strange terminal types, making best effort.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0: add Terminal.get_location() method\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eenhancement: method Terminal.get_location\u003ccode\u003ereturns the\u003c/code\u003e(row, col)`` position of the cursor at the time of call for attached terminal.\u003c/li\u003e\n\u003cli\u003eenhancement: a keyboard now detected as \u003cem\u003estdin\u003c/em\u003e when \u003ccode\u003estream\u003c/code\u003e is \u003ccode\u003esys.stderr\u003c/code\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/jquast/blessed/blob/master/docs/history.rst\"\u003eblessed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. py:currentmodule:: blessed.terminal\u003c/p\u003e\n\u003ch1\u003eVersion History\u003c/h1\u003e\n\u003cp\u003e1.42\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: regression in :meth:\u003ccode\u003e~.Terminal.cbreak\u003c/code\u003e and :meth:\u003ccode\u003e~.Terminal.raw\u003c/code\u003e were not thread-safe\nbroken in versions 1.40 and 1.41, remove signal ignore of SIGTTOU :ghissue:\u003ccode\u003e380\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.41\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix: :meth:\u003ccode\u003e~.Terminal.get_location\u003c/code\u003e broken in 1.40, returned a generator instead of a tuple.\n:ghissue:\u003ccode\u003e378\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.40\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eimproved: jinxed_ is \u003cstrong\u003enow required on all platforms\u003c/strong\u003e, providing a curses-free and\n\u003ccode\u003esingleton-free \u0026lt;https://jinxed.readthedocs.io/en/stable/capabilities.html#singleton-free\u0026gt;\u003c/code\u003e_\nimplementation of the subset of curses_ used by blessed.  The jinxed_ 1.5.0 release provides a\nterminal \u003ccode\u003ecapability database \u0026lt;https://jinxed.readthedocs.io/en/stable/capabilities.html#database\u0026gt;\u003c/code\u003e of 45 terminals and their\ncommon aliases.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eimproved: Class initialization of :class:\u003ccode\u003e~.Terminal()\u003c/code\u003e now uses \u003ccode\u003eXTGETTCAP\u003c/code\u003e_ to determine\npreferred terminal name \u003ccode\u003eTN\u003c/code\u003e, 24-bit color support \u003ccode\u003eRGB\u003c/code\u003e, number of colors \u003ccode\u003eCo\u003c/code\u003e, \u003ccode\u003eitalic\u003c/code\u003e,\nand \u003ccode\u003eblink\u003c/code\u003e capabilities.\u003c/p\u003e\n\u003cp\u003eThis improves detection of Terminal \u003ccode\u003ekind\u003c/code\u003e and \u003ccode\u003enumber_of_colors\u003c/code\u003e over protocols like serial\nthat cannot forward any environment variables or ssh that do not forward \u003ccode\u003eCOLORTERM\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eintroduced: A :exc:\u003ccode\u003eUserWarning\u003c/code\u003e is emitted when :meth:\u003ccode\u003e~.Terminal.__getattr__\u003c/code\u003e resolves an\nunknown terminal capability name, helping developers catch typos like \u003ccode\u003eterm.bld\u003c/code\u003e\n(missing \u003ccode\u003ebold\u003c/code\u003e).  The warning can be suppressed by setting the environment variable\n\u003ccode\u003eBLESSED_NOWARN_UNKNOWN_CAPS\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebugfix: Fixed internal typo \u003ccode\u003esusimpleript\u003c/code\u003e to the correct terminfo name \u003ccode\u003essubm\u003c/code\u003e for the\n\u003ccode\u003eenter_susimpleript_mode\u003c/code\u003e capability.  This was previously masked by curses_ returning\nan empty string for unknown capabilities.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.39\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eintroduced: :meth:\u003ccode\u003e~.Terminal.progress_bar\u003c/code\u003e for \u003ccode\u003eOSC 9;4 sequence \u0026lt;https://ghostty.org/docs/vt/osc/conemu#change-progress-state-(osc-94)\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eintroduced: :meth:\u003ccode\u003e~.Terminal.text_sized\u003c/code\u003e -- wrap text in Kitty text sizing protocol (OSC 66)\nescape sequences, with graceful fallback to plain text when the terminal does not support\nthe protocol.\u003c/li\u003e\n\u003cli\u003eintroduced: :class:\u003ccode\u003e~.Keystroke\u003c/code\u003e of name \u003ccode\u003eCPR_RESPONSE\u003c/code\u003e for asynchronous capture of Cursor\nPosition Report responses via :meth:\u003ccode\u003e~.Terminal.inkey\u003c/code\u003e.  New argument\n\u003ccode\u003ecapture_cpr=True\u003c/code\u003e resolves the legacy F3 key ambiguity and matches against\n\u003ccode\u003eCPR_RESPONSE\u003c/code\u003e.  New properties :attr:\u003ccode\u003e~.Keystroke.cpr_yx\u003c/code\u003e and :attr:\u003ccode\u003e~.Keystroke.cpr_xy\u003c/code\u003e\nreturn the decoded cursor coordinates.  :ghpull:\u003ccode\u003e369\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eimproved: :meth:\u003ccode\u003e~.Terminal.inkey\u003c/code\u003e raises :exc:\u003ccode\u003eEOFError\u003c/code\u003e when keyboard fd is at EOF, rather\nthan returning an empty :class:\u003ccode\u003e~.Keystroke\u003c/code\u003e.  :ghpull:\u003ccode\u003e371\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eimproved: :meth:\u003ccode\u003e~.Terminal.ljust\u003c/code\u003e, :meth:\u003ccode\u003e~.Terminal.rjust\u003c/code\u003e, and :meth:\u003ccode\u003e~.Terminal.center\u003c/code\u003e\nnow measure text containing hyperlinks, Kitty text sizing protocol sequences, and overtyping\n(backspace/cursor-left with painter's algorithm), introduced by wcwidth_ 0.7.0.\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/jquast/blessed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.96 to 1.43.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7a82579873d86998d560b8d06b3564c743918cd8\"\u003e\u003ccode\u003e7a82579\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.8'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/06a1d63a58620d394cc26a5e8582ed67eed3cb62\"\u003e\u003ccode\u003e06a1d63\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2b6e7bd9d0d24c20f02df91f161ef2214fb53628\"\u003e\u003ccode\u003e2b6e7bd\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/e6aee5dccd2169966814e328eaebdd14b742a0e2\"\u003e\u003ccode\u003ee6aee5d\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/05566d2cd7e3d191a37a663c842eb849418ae7e9\"\u003e\u003ccode\u003e05566d2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/37e8136684e7107a6f7343770873a3630d347731\"\u003e\u003ccode\u003e37e8136\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4418d43f69ee005bf066dc5401b7cda83458c750\"\u003e\u003ccode\u003e4418d43\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5e2df6190560507ab8ff05b4ea7712d0c4bfaf48\"\u003e\u003ccode\u003e5e2df61\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4787\"\u003e#4787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/81a86c9b8923634ee3e9f887c3f7f5e1e312d693\"\u003e\u003ccode\u003e81a86c9\u003c/code\u003e\u003c/a\u003e Add CI for 3.14t (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4786\"\u003e#4786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f2ccf9f3738028afa9d5a6545e52f8520a31afe1\"\u003e\u003ccode\u003ef2ccf9f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.6'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.96...1.43.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.96 to 1.43.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/bd1fb2372c4cecbc93a44be838bb4a38fd23c3ee\"\u003e\u003ccode\u003ebd1fb23\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.8'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d15b1246894c2be8ccaa8084abff4b6be9269f54\"\u003e\u003ccode\u003ed15b124\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b9f0f7fc6f0dc0541b14d8aadec4d92c64dc585f\"\u003e\u003ccode\u003eb9f0f7f\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ec174c1f3b8580736cbd783c9f79ed70cf9eb4c7\"\u003e\u003ccode\u003eec174c1\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/74501ceccf44a7def602007d2a870a17b7b742ec\"\u003e\u003ccode\u003e74501ce\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d6831a55afbdfa2dc51314e73997ce89dc533836\"\u003e\u003ccode\u003ed6831a5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.7' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0e63dbed5a6270383200219af4a55e41f08ae72d\"\u003e\u003ccode\u003e0e63dbe\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/840e09fa3d9c0bd4b84601bdd1bb34e1ea2beb57\"\u003e\u003ccode\u003e840e09f\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/8228777f8858256515a6875366425acdc74b1c41\"\u003e\u003ccode\u003e8228777\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/b63fa4bfc0587ca55a8684d18a82b86904ab234e\"\u003e\u003ccode\u003eb63fa4b\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.96...1.43.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 47.0.0 to 48.0.0\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\u003e48.0.0 - 2026-05-04\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **BACKWARDS INCOMPATIBLE:** Support for Python 3.8 has been removed.\n  ``cryptography`` now requires Python 3.9 or later.\n* **BACKWARDS INCOMPATIBLE:** Loading an X.509 CRL whose inner\n  ``TBSCertList.signature`` algorithm does not match the outer\n  ``signatureAlgorithm`` now raises ``ValueError``. Previously, such CRLs\n  were parsed successfully and only rejected during signature validation.\n* Added support for :doc:`/hazmat/primitives/asymmetric/mlkem` and\n  :doc:`/hazmat/primitives/asymmetric/mldsa` when using OpenSSL 3.5.0 or\n  later, in addition to the existing AWS-LC and BoringSSL support. This means\n  post-quantum algorithms are now available to users of our wheels.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Going forward, we do not guarantee that all functionality\u003cbr /\u003e\nin \u003ccode\u003ecryptography\u003c/code\u003e will be available when building against\u003cbr /\u003e\nOpenSSL. See :doc:\u003ccode\u003e/statements/state-of-openssl\u003c/code\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v47-0-0:\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/8e03e30e3aae01632a697e903e3593c924f0139d\"\u003e\u003ccode\u003e8e03e30\u003c/code\u003e\u003c/a\u003e bump for 48.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14796\"\u003e#14796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71\"\u003e\u003ccode\u003e295e0d2\u003c/code\u003e\u003c/a\u003e Add AGENTS.md with CLAUDE.md symlink (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14794\"\u003e#14794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8\"\u003e\u003ccode\u003e104a2de\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926\"\u003e\u003ccode\u003e67ec1e5\u003c/code\u003e\u003c/a\u003e call check_length early on AesSiv::encrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14792\"\u003e#14792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26\"\u003e\u003ccode\u003eb2da57a\u003c/code\u003e\u003c/a\u003e changelog for mldsa/mlkem for openssl (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14791\"\u003e#14791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0\"\u003e\u003ccode\u003e3cf44ad\u003c/code\u003e\u003c/a\u003e ML-KEM OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14781\"\u003e#14781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83\"\u003e\u003ccode\u003e2e31639\u003c/code\u003e\u003c/a\u003e ML-DSA OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14773\"\u003e#14773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3\"\u003e\u003ccode\u003e5affe5a\u003c/code\u003e\u003c/a\u003e fix rust nightly clippy (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14790\"\u003e#14790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec\"\u003e\u003ccode\u003e2e73ca4\u003c/code\u003e\u003c/a\u003e bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/82ebd3b9f49d49ad5fd8b4b1f1dd02487b6e1466\"\u003e\u003ccode\u003e82ebd3b\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14785\"\u003e#14785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/47.0.0...48.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.2.13 to 6.0.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8f8ad09659d728423a00e0a3b5f16da5c3a38e24\"\u003e\u003ccode\u003e8f8ad09\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/44ad76efcbe3c4ca0f08bb9dabe916f6374596c9\"\u003e\u003ccode\u003e44ad76e\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-6907 -- Prevented caching of requests when Vary header...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1b0184aa657bc3f5859aeb0206e7c1e94e48b103\"\u003e\u003ccode\u003e1b0184a\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-35192 -- Ensured Vary header is sent when setting sess...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ad8f9e19e0897ea45ded7c046ff28daf6f773e92\"\u003e\u003ccode\u003ead8f9e1\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-5766 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE in Memory...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/990ab01e70fd8f55e867b4a234c0ee242fd33fec\"\u003e\u003ccode\u003e990ab01\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/37039\"\u003e#37039\u003c/a\u003e -- Removed outdated note from QuerySet.iterator() docs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f0c269f285ab58bfb4a120141d7dd41ff4f42b45\"\u003e\u003ccode\u003ef0c269f\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed typo in stub release notes for 5.2.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8bcd15beeff6542acc381b83f50b061d62284c2b\"\u003e\u003ccode\u003e8bcd15b\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/37067\"\u003e#37067\u003c/a\u003e -- Added trailing slash in django_file_prefixes().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3cdec6454fb86e8d03a06944c0c68025733ed93f\"\u003e\u003ccode\u003e3cdec64\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs CVE-2026-25674 -- Clarified role of umask in upload permissions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5dd5c70cf1056e8e04badb687f773e8f16bba257\"\u003e\u003ccode\u003e5dd5c70\u003c/code\u003e\u003c/a\u003e [6.0.x] Added stub release notes and release date for 6.0.5 and 5.2.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8ee73415270a1a54daaec9bb529ad82c6f7a6d4c\"\u003e\u003ccode\u003e8ee7341\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/373\"\u003e#373\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/34122\"\u003e#34122\u003c/a\u003e -- Removed warning that ForeignObject is an interna...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.13...6.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.14.3 to 65.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-otp` from 1.3.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-otp/django-otp/blob/master/CHANGES.rst\"\u003edjango-otp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - January 07, 2026 - Async support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#185](https://github.com/django-otp/django-otp/issues/185)\u003c/code\u003e_: Make OTPMiddleware async capable\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Aljosha Papsch.\u003c/p\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/185\"\u003edjango-otp/django-otp#185\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.3 - October 25, 2025 - Spanish update\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#182](https://github.com/django-otp/django-otp/issues/182)\u003c/code\u003e_: Correct missing Spanish translations\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#181](https://github.com/django-otp/django-otp/issues/181)\u003c/code\u003e_: Wrong :rtype: in StaticToken.random_token docstring\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003edjango-otp/django-otp#181\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/182\"\u003e#182\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/182\"\u003edjango-otp/django-otp#182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.2 - October 21, 2025 - Cleanup\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#179](https://github.com/django-otp/django-otp/issues/179)\u003c/code\u003e_: Add missing gettext strings\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#180](https://github.com/django-otp/django-otp/issues/180)\u003c/code\u003e_: Remove tests from wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/179\"\u003e#179\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/179\"\u003edjango-otp/django-otp#179\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/180\"\u003e#180\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/180\"\u003edjango-otp/django-otp#180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.1 - July 08, 2025 - Small improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow a {token} placeholder in :setting:\u003ccode\u003eOTP_EMAIL_SUBJECT\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 - April 02, 2025 - Django 5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate test matrix for Django 5.2.\u003c/li\u003e\n\u003cli\u003eRemove support for Django 3.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.5.4 - September 06, 2024 - Ignore proxy models when enumerating device classes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#161](https://github.com/django-otp/django-otp/issues/161)\u003c/code\u003e_: Discard proxied models when iterating device models\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/161\"\u003e#161\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/161\"\u003edjango-otp/django-otp#161\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/django-otp/django-otp/commit/fc0d50b6f66da10fad250ce1640f0385f3229f48\"\u003e\u003ccode\u003efc0d50b\u003c/code\u003e\u003c/a\u003e Version 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/56e4ce3b5618de5d5a8a24c9eb709b51802ad06b\"\u003e\u003ccode\u003e56e4ce3\u003c/code\u003e\u003c/a\u003e Refactor test utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/8c4d4c23649316c55dad6a79fb06fa975e5e4702\"\u003e\u003ccode\u003e8c4d4c2\u003c/code\u003e\u003c/a\u003e Update test matrix for Django 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/0ac4ff33aa88fa73c12aa60713881481116a6d5f\"\u003e\u003ccode\u003e0ac4ff3\u003c/code\u003e\u003c/a\u003e Cleanup and changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b10df0d8cb94c8242ca48bbcea3d307b553808a5\"\u003e\u003ccode\u003eb10df0d\u003c/code\u003e\u003c/a\u003e Make OTPMiddleware async capable. (\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/81211794b8cc9c8befc6c8330b6652d3c4e78fd5\"\u003e\u003ccode\u003e8121179\u003c/code\u003e\u003c/a\u003e Raise requires-python to 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/38b7ebabd7b4817aec92f884d448eeb462e82108\"\u003e\u003ccode\u003e38b7eba\u003c/code\u003e\u003c/a\u003e Version 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b9026d7025da45b0144c99e91b5286c734448012\"\u003e\u003ccode\u003eb9026d7\u003c/code\u003e\u003c/a\u003e Correct Missing Spanish Translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/ae18ba95bd03534e15583d456572f86ea2f41442\"\u003e\u003ccode\u003eae18ba9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: misdocumented return type.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/c9eef89240985293e0c9f197d0257a5352cfb62d\"\u003e\u003ccode\u003ec9eef89\u003c/code\u003e\u003c/a\u003e Version 1.6.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-otp/django-otp/compare/v1.3.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-q2` from 1.9.0 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GDay/django-q2/releases\"\u003edjango-q2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import by \u003ca href=\"https://github.com/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd worker-process post-execute signal by \u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003easync_iter: fix BadSignature after the default Django cache expires by \u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation by \u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update Django Q2 compatibility information by \u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e by \u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: qmonitor crash when passing int values to term.center by \u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list by \u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.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/django-q2/django-q2/blob/master/CHANGELOG.md\"\u003edjango-q2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/django-q2/django-q2/tree/v1.10.0\"\u003ev1.10.0\u003c/a\u003e (2026-05-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/308\"\u003e#308\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd post_execute_in_worker signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with sync=True (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ru locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/django-q2/django-q2/commit/a699578c345f78b5f7faa5e34b6ccaf886ae7fd8\"\u003e\u003ccode\u003ea699578\u003c/code\u003e\u003c/a\u003e Release v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/5975a2d081db4fd6582f829e0df0dd9263ca4e28\"\u003e\u003ccode\u003e5975a2d\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/936fdd10b134dca4c5de020ca74b178742fd923e\"\u003e\u003ccode\u003e936fdd1\u003c/code\u003e\u003c/a\u003e Update Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/fab97463c2e724e46204fe8eab92a1a9bb8aebb2\"\u003e\u003ccode\u003efab9746\u003c/code\u003e\u003c/a\u003e Fix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1abdc5b653d9d5c362a6fb4a73df2d08acdc642e\"\u003e\u003ccode\u003e1abdc5b\u003c/code\u003e\u003c/a\u003e Convert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/01df35c92332801c21d8f12351e6b02c72608490\"\u003e\u003ccode\u003e01df35c\u003c/code\u003e\u003c/a\u003e Don't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/573b8da528c00a1fe8accf959d14e3af4a8f4e2a\"\u003e\u003ccode\u003e573b8da\u003c/code\u003e\u003c/a\u003e Update Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/8a563d289dc63f587d23237437f84af0f611d049\"\u003e\u003ccode\u003e8a563d2\u003c/code\u003e\u003c/a\u003e feat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1b0f71a39b80c49f0fcbb9a41b54b5dfaff0c175\"\u003e\u003ccode\u003e1b0f71a\u003c/code\u003e\u003c/a\u003e Fix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/b51575a4b03dfd4c22da6b948dddb35e2a243bef\"\u003e\u003ccode\u003eb51575a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epost_execute_in_worker\u003c/code\u003e signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GDay/django-q2/compare/v1.9.0...v1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 1.2.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges since 1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers\nwhen cloning from a local repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing\n\u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/blob/main/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.1\t2026-04-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecover from concurrent pack removals (e.g. a racing \u003ccode\u003egit repack\u003c/code\u003e or\n\u003ccode\u003egit gc --auto\u003c/code\u003e) instead of raising spurious \u003ccode\u003eKeyError\u003c/code\u003e /\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003ePack.index\u003c/code\u003e and \u003ccode\u003ePack.data\u003c/code\u003e now translate\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e during lazy load into \u003ccode\u003ePackFileDisappeared\u003c/code\u003e,\nand \u003ccode\u003ePackBasedObjectStore\u003c/code\u003e evicts the stale pack and rescans the\npack directory before retrying — equivalent to git's\n\u003ccode\u003ereprepare_packed_git()\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers when\ncloning from a local repo. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing \u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/commit/57806b8a4d041cd18bf84ba8d715f4dd0bc5e200\"\u003e\u003ccode\u003e57806b8\u003c/code\u003e\u003c/a\u003e Release 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a127d330de1ef497935146bcd978211d9894787f\"\u003e\u003ccode\u003ea127d33\u003c/code\u003e\u003c/a\u003e Honor GIT_PROTOCOL env var when picking default protocol version (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2149\"\u003e#2149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6c1697a108757766aba71624422a93900f2a867a\"\u003e\u003ccode\u003e6c1697a\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6685fde81a717d91d747953c2f9277939ea5ab6b\"\u003e\u003ccode\u003e6685fde\u003c/code\u003e\u003c/a\u003e lfs: use pathlib.Path.as_uri() for portable file:// URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/0d0b9f8d205eb45660d81d1efc5b7ff1fc579e61\"\u003e\u003ccode\u003e0d0b9f8\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a0dac57db7ba8a6d9fe67d1cf4303cef306647a2\"\u003e\u003ccode\u003ea0dac57\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/cd6ebd90fc8f2f1b267db29c418c12c7ebb971a3\"\u003e\u003ccode\u003ecd6ebd9\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/bfaf192aaba90df54e4e7b07bba11a28cf36012b\"\u003e\u003ccode\u003ebfaf192\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/06d7afdeb87f742bdfff93563fd0acd042473b0a\"\u003e\u003ccode\u003e06d7afd\u003c/code\u003e\u003c/a\u003e Move GIT_SSH/GIT_SSH_COMMAND env lookup from client.py to cli.py (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2156\"\u003e#2156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/e60e0c1a4d44441d2f6edfc01ba5098d2ed24cf0\"\u003e\u003ccode\u003ee60e0c1\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-1.2.0...dulwich-1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fonttools` from 4.62.1 to 4.63.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fonttools/fonttools/releases\"\u003efonttools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.63.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ttLib] Add support for Apple Color Emoji \u003ccode\u003ebgcl\u003c/code\u003e table (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4065\"\u003e#4065\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[ttLib] Add support for \u003ccode\u003eIFT\u003c/code\u003e and \u003ccode\u003eIFTX\u003c/code\u003e tables (Incremental Font Transfer, PatchMapFormat2) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4070\"\u003e#4070\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4072\"\u003e#4072\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[otData] Introduce \u003ccode\u003eFieldSpec\u003c/code\u003e dataclass for OpenType table schema definitions, replacing raw tuples in \u003ccode\u003eotData.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4076\"\u003e#4076\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[Feat] Show \u003ccode\u003ename\u003c/code\u003e table strings as comments next to label IDs in TTX output, matching the convention used by \u003ccode\u003efvar\u003c/code\u003e, \u003ccode\u003eSTAT\u003c/code\u003e, \u003ccode\u003etrak\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4089\"\u003e#4089\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fix Cython complex-division rounding difference in \u003ccode\u003esplit_cubic_into_three\u003c/code\u003e that could cause ±1 off-curve coordinate shifts (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3928\"\u003e#3928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4083\"\u003e#4083\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[designspaceLib] Fix \u003ccode\u003emap_backward\u003c/code\u003e\u003ccode\u003egooglefonts/ufo2ft#978\u003c/code\u003e\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4085\"\u003e#4085\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[OS/2] Fix \u003ccode\u003esetUnicodeRanges\u003c/code\u003e to accept reserved bits 123-127, restoring round-trip with \u003ccode\u003egetUnicodeRanges\u003c/code\u003e and fixing \u003ccode\u003erecalcUnicodeRanges\u003c/code\u003e crash in the subsetter (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4087\"\u003e#4087\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4088\"\u003e#4088\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cython] Declare Cython extensions as free-threading compatible on Python 3.13+, so that importing them on free-threaded Python no longer re-enables the GIL (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4073\"\u003e#4073\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4090\"\u003e#4090\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/fonttools/fonttools/blob/main/NEWS.rst\"\u003efonttools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.63.0 (released 2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ttLib] Add support for Apple Color Emoji \u003ccode\u003ebgcl\u003c/code\u003e table (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4065\"\u003e#4065\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[ttLib] Add support for \u003ccode\u003eIFT\u003c/code\u003e and \u003ccode\u003eIFTX\u003c/code\u003e tables (Incremental Font Transfer,\nPatchMapFormat2) (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4070\"\u003e#4070\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4072\"\u003e#4072\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[otData] Introduce \u003ccode\u003eFieldSpec\u003c/code\u003e dataclass for OpenType table schema definitions,\nreplacing raw tuples in \u003ccode\u003eotData.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4076\"\u003e#4076\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[Feat] Show \u003ccode\u003ename\u003c/code\u003e table strings as comments next to label IDs in TTX output,\nmatching the convention used by \u003ccode\u003efvar\u003c/code\u003e, \u003ccode\u003eSTAT\u003c/code\u003e, \u003ccode\u003etrak\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4089\"\u003e#4089\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cu2qu] Fix Cython complex-division rounding difference in\n\u003ccode\u003esplit_cubic_into_three\u003c/code\u003e that could cause ±1 off-curve coordinate shifts\n(\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/3928\"\u003e#3928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4083\"\u003e#4083\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[designspaceLib] Fix \u003ccode\u003emap_backward\u003c/code\u003e for many-to-one (flat-segment) axis maps\nthat silently dropped entries via dict comprehension\n\u003ccode\u003egooglefonts/ufo2ft#978\u003c/code\u003e\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4085\"\u003e#4085\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[OS/2] Fix \u003ccode\u003esetUnicodeRanges\u003c/code\u003e to accept reserved bits 123-127, restoring\nround-trip with \u003ccode\u003egetUnicodeRanges\u003c/code\u003e and fixing \u003ccode\u003erecalcUnicodeRanges\u003c/code\u003e crash\nin the subsetter (\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4087\"\u003e#4087\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4088\"\u003e#4088\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[cython] Declare Cython extensions as free-threading compatible on Python 3.13+,\nso that importing them on free-threaded Python no longer re-enables the GIL\n(\u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4073\"\u003e#4073\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4090\"\u003e#4090\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/fonttools/fonttools/commit/978d9edccb60ea0e5fbad7015cb11817c3532328\"\u003e\u003ccode\u003e978d9ed\u003c/code\u003e\u003c/a\u003e Release 4.63.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/6b40ecb6f13e076916044ecd8f0fc13ab5f957f6\"\u003e\u003ccode\u003e6b40ecb\u003c/code\u003e\u003c/a\u003e Add changelog entries for 4.63.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/382a35fb5e96c6ff38a1e7775a24e20bf122a66d\"\u003e\u003ccode\u003e382a35f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4090\"\u003e#4090\u003c/a\u003e from fonttools/fix-freethreading-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/0e999b55f05ad0dd8423f389673a32de9c5199bb\"\u003e\u003ccode\u003e0e999b5\u003c/code\u003e\u003c/a\u003e Declare Cython extensions as free-threading compatible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/9e55ea54c184b0d4c0830525f72e69c6c1a32691\"\u003e\u003ccode\u003e9e55ea5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4089\"\u003e#4089\u003c/a\u003e from fonttools/graphite-feat-labels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/e84db3ab426a251256ebec7904c03dc73e25932b\"\u003e\u003ccode\u003ee84db3a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4088\"\u003e#4088\u003c/a\u003e from fonttools/fix-setUnicodeRanges-bits-123-127\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/d6eabd1edf7bfa950b6b85c393e4c185dee36d7f\"\u003e\u003ccode\u003ed6eabd1\u003c/code\u003e\u003c/a\u003e Feat: show name table strings as comments next to label IDs in ttx\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/7d0902b2e27ec1433b015b3b8a79391d7c8604cb\"\u003e\u003ccode\u003e7d0902b\u003c/code\u003e\u003c/a\u003e OS/2: fix setUnicodeRanges round-trip for reserved bits 123-127\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/06e266ce70ec578d549c2df0e180a84d9323baf2\"\u003e\u003ccode\u003e06e266c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fonttools/fonttools/issues/4085\"\u003e#4085\u003c/a\u003e from fonttools/fix-map-backward-non-injective\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fonttools/fonttools/commit/6d64598a63f83bcd59d29cf3f22dd25343bd9688\"\u003e\u003ccode\u003e6d64598\u003c/code\u003e\u003c/a\u003e Add more tests for map_backward with many-to-one axis maps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fonttools/fonttools/compare/4.62.1...4.63.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleapis-common-protos` from 1.74.0 to 1.75.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogleapis-common-protos's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleapis-common-protos: v1.75.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.74.0...googleapis-common-protos-v1.75.0\"\u003ev1.75.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3997a108c45e1c1df8e844746eb2af4b1a77e154\"\u003e\u003ccode\u003e3997a10\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260506T163115Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16964\"\u003e#16964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f655e492c0879684b60a7d06e90501dd49e96252\"\u003e\u003ccode\u003ef655e49\u003c/code\u003e\u003c/a\u003e chore: add type annotation to SYNCPOINTS (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16973\"\u003e#16973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f149bd7dd30489c3165bf03a2343dc9f75875451\"\u003e\u003ccode\u003ef149bd7\u003c/code\u003e\u003c/a\u003e refactor(bigframes): Modularize compiler routing as proxy executor (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16907\"\u003e#16907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/19db82f5cb033215531e5b65239e45275e3ed568\"\u003e\u003ccode\u003e19db82f\u003c/code\u003e\u003c/a\u003e chore(bigframes): remove leftover support for Python \u0026lt;= 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16961\"\u003e#16961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/2dedaacf0666ade39ae89194ad8dbc34761bd1df\"\u003e\u003ccode\u003e2dedaac\u003c/code\u003e\u003c/a\u003e chore: test CommonResource resource name alias (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16965\"\u003e#16965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9652a08cb89441fac779eb4fa4d6f48f33b55d3b\"\u003e\u003ccode\u003e9652a08\u003c/code\u003e\u003c/a\u003e fix: pass resource aliases to file-level CommonResources (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16945\"\u003e#16945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/78a48b040a2abc0bf19ebe267aba0a1f410df2e6\"\u003e\u003ccode\u003e78a48b0\u003c/code\u003e\u003c/a\u003e fix(google-cloud-core): Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16953\"\u003e#16953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5975c48186dd8798b172ac442fd55bc7fece1612\"\u003e\u003ccode\u003e5975c48\u003c/code\u003e\u003c/a\u003e fix(dns): Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16954\"\u003e#16954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d5bea2e99b435b8b3d75321679072db092001de6\"\u003e\u003ccode\u003ed5bea2e\u003c/code\u003e\u003c/a\u003e fix(crc32c): Drop support for Python 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16955\"\u003e#16955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/63f6d96c1c5569b5fdaea85dfe995ce280907b98\"\u003e\u003ccode\u003e63f6d96\u003c/code\u003e\u003c/a\u003e fix(sqlalchemy-bigquery): Drop support for Python 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16956\"\u003e#16956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.74.0...googleapis-common-protos-v1.75.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/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 `icalendar` from 7.0.3 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/collective/icalendar/releases\"\u003eicalendar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003cp\u003eTo view the changes, please see the \u003ca href=\"https://icalendar.readthedocs.io/en/latest/changelog.html\"\u003eChangelog\u003c/a\u003e. This release can be installed from \u003ca href=\"https://pypi.org/project/icalendar/#history\"\u003ePyPI\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/collective/icalendar/blob/main/CHANGES.rst\"\u003eicalendar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-04-30)\u003c/h2\u003e\n\u003cp\u003eMinor changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`\n- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`\n- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`\n- Make icalendar an explicit editable install for clarity. :pr:`1268`\n- Do not run some tests until a pull request is approved. :pr:`1246`\n- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`\n- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`\n- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`\n- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`\n- Add type hints to tests directory functions. :issue:`938`\n- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.\n\u003cp\u003eNew features\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`\n- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`\n- Added ``subcomponents`` parameter to :meth:`Component.new \u0026amp;lt;icalendar.cal.component.Component.new\u0026amp;gt;`, :meth:`Event.new \u0026amp;lt;icalendar.cal.event.Event.new\u0026amp;gt;`, :meth:`Todo.new \u0026amp;lt;icalendar.cal.todo.Todo.new\u0026amp;gt;`, and :meth:`Availability.new \u0026amp;lt;icalendar.cal.availability.Availability.new\u0026amp;gt;`. :issue:`1065`\n- Switch to uv for development. :issue:`1102`\n\nBug fixes\n~~~~~~~~~\n\n- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`\n- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnkno...\n\n_Description has been truncated_","html_url":"https://github.com/invenhost/InvenTree/pull/342","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/invenhost%2FInvenTree/issues/342","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/342/packages"}},{"old_version":"2.2.1","new_version":"5.0.2","update_type":"major","path":null,"pr_created_at":"2026-05-22T00:09:49.000Z","version_change":"2.2.1 → 5.0.2","issue":{"uuid":"4498741993","node_id":"PR_kwDOSkWQys7eJgD3","number":6,"state":"open","title":"build(deps-dev): bump pytest-codspeed from 2.2.1 to 5.0.2","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-05-22T00:09:49.000Z","updated_at":"2026-05-22T00:09:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"2.2.1","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 2.2.1 to 5.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: skip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003eCodSpeedHQ/pytest-codspeed#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild: enable free-threaded wheels in cibuildwheel by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003eCodSpeedHQ/pytest-codspeed#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.0...v5.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eMacOS walltime profiling is now available with the \u003ca href=\"https://github.com/CodSpeedHQ/codspeed/releases/tag/v4.16.1\"\u003ecodspeed cli v4.16.1\u003c/a\u003e and above.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epytest-codspeed\u003c/code\u003e can now be used in free threaded mode. This has been tested with 3.14t and 3.15t.\nFor this, we have dropped usage of \u003ccode\u003ecffi\u003c/code\u003e in favor of the native extension support.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: bump instrument-hooks by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003eCodSpeedHQ/pytest-codspeed#119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove CFFI in favor of native extension to support free-threaded mode by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003eCodSpeedHQ/pytest-codspeed#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(hooks): declare native extension free-thread safe by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003eCodSpeedHQ/pytest-codspeed#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: use instrument-hook markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003eCodSpeedHQ/pytest-codspeed#118\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.5.0...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eWe now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.\u003c/p\u003e\n\u003cp\u003eThis data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.\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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.2] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003e#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.1] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e💼 Other\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/121\"\u003e#121\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.0.0] - 2026-05-13\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse instrument_hooks markers in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare native extension free-thread safe (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/120\"\u003e#120\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/120\"\u003e#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove cffi in favor of native extension by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚡ Performance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBind callgrind start/stop directly to avoid extra frame by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/96\"\u003e#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore common compilation warnings for instrument-hooks by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/118\"\u003e#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse unsigned bash in the macos test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pinned uv version to 0.11.14 by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.15 and 3.15t to test matrix by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14.t in test suite by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/119\"\u003e#119\u003c/a\u003e) by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/119\"\u003e#119\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e) by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003e#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python pinned python version by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003e#109\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/CodSpeedHQ/pytest-codspeed/commit/fc33d2098d7a1296b320b30e9ed14c270ab714b8\"\u003e\u003ccode\u003efc33d20\u003c/code\u003e\u003c/a\u003e Release v5.0.2 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/3bbabe482458518555fa9939902410ae8cf1baa8\"\u003e\u003ccode\u003e3bbabe4\u003c/code\u003e\u003c/a\u003e feat: skip Python runtime objects in callgrind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d4d9dc6ca011bbf6d21640e7c370d3d181f944cf\"\u003e\u003ccode\u003ed4d9dc6\u003c/code\u003e\u003c/a\u003e Release v5.0.1 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ad709a5904ea756c577dcfa91caff67c3cf8777a\"\u003e\u003ccode\u003ead709a5\u003c/code\u003e\u003c/a\u003e build: enable free-threaded wheels in cibuildwheel (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/080d620ba846adaf6e1b70b96e525e773438034b\"\u003e\u003ccode\u003e080d620\u003c/code\u003e\u003c/a\u003e Release v5.0.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/befdebfba2cdebddd84d6377f8d14d72e0ad4086\"\u003e\u003ccode\u003ebefdebf\u003c/code\u003e\u003c/a\u003e chore: ignore common compilation warnings for instrument-hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/ee98055fb69fba4cc62c3822ef3df4c7002352d3\"\u003e\u003ccode\u003eee98055\u003c/code\u003e\u003c/a\u003e chore: use unsigned bash in the macos test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/5a205c8822ca16db400ef25a5d8b51a65c875669\"\u003e\u003ccode\u003e5a205c8\u003c/code\u003e\u003c/a\u003e feat: use instrument_hooks markers in walltime\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/fda1fbc5f59ea9db783a13a2052c872d22ed9d28\"\u003e\u003ccode\u003efda1fbc\u003c/code\u003e\u003c/a\u003e feat(hooks): declare native extension free-thread safe (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/f3ed38804ccffc4e84f14710482c9c3e8ddf5d96\"\u003e\u003ccode\u003ef3ed388\u003c/code\u003e\u003c/a\u003e perf(hooks): bind callgrind start/stop directly to avoid extra frame\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v2.2.1...v5.0.2\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=2.2.1\u0026new-version=5.0.2)](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/raelldottin/repo-automation/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/raelldottin%2Frepo-automation/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"5.0.1","new_version":"5.0.2","update_type":"patch","path":null,"pr_created_at":"2026-05-15T15:52:40.000Z","version_change":"5.0.1 → 5.0.2","issue":{"uuid":"4455198072","node_id":"PR_kwDOBOvWq87b-q4S","number":765,"state":"closed","title":"build(deps): bump pytest-codspeed from 5.0.1 to 5.0.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-15T15:54:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-15T15:52:40.000Z","updated_at":"2026-05-15T15:56:47.000Z","time_to_close":114,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"pytest-codspeed","old_version":"5.0.1","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 5.0.1 to 5.0.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: skip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003eCodSpeedHQ/pytest-codspeed#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.0.2] - 2026-05-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip Python runtime objects in callgrind by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/122\"\u003e#122\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/CodSpeedHQ/pytest-codspeed/commit/fc33d2098d7a1296b320b30e9ed14c270ab714b8\"\u003e\u003ccode\u003efc33d20\u003c/code\u003e\u003c/a\u003e Release v5.0.2 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/3bbabe482458518555fa9939902410ae8cf1baa8\"\u003e\u003ccode\u003e3bbabe4\u003c/code\u003e\u003c/a\u003e feat: skip Python runtime objects in callgrind\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v5.0.1...v5.0.2\"\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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=5.0.1\u0026new-version=5.0.2)](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/aio-libs/async-lru/pull/765","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aio-libs%2Fasync-lru/issues/765","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/765/packages"}},{"old_version":"4.4.0","new_version":"5.0.2","update_type":"major","path":null,"pr_created_at":"2026-05-14T23:56:49.000Z","version_change":"4.4.0 → 5.0.2","issue":{"uuid":"4450182039","node_id":"PR_kwDOSQXwv87bumta","number":67,"state":"open","title":"chore(deps): bump the uv-dependencies group across 1 directory with 33 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T23:56:49.000Z","updated_at":"2026-05-14T23:58:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":33,"packages":[{"name":"apprise","old_version":"1.9.9","new_version":"1.10.0","repository_url":"https://github.com/caronc/apprise"},{"name":"cryptography","old_version":"46.0.7","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"cyclopts","old_version":"4.10.2","new_version":"4.12.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.0.6","new_version":"7.1.1","repository_url":"https://github.com/tkem/cachetools"},{"name":"coolname","old_version":"4.2.0","new_version":"5.0.0","repository_url":"https://github.com/alexanderlukanin13/coolname"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"opentelemetry-api","old_version":"1.39.1","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"orjson","old_version":"3.11.8","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.1","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic","old_version":"2.13.3","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.14.0","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"uvicorn","old_version":"0.45.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.19.2","new_version":"0.20.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.7","new_version":"0.11.14","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-dbt","old_version":"0.7.23","new_version":"0.7.24","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-redis","old_version":"0.2.10","new_version":"0.2.11","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.1.22","new_version":"5.2.1","repository_url":"https://github.com/getmoto/moto"},{"name":"pyright","old_version":"1.1.408","new_version":"1.1.409","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.3","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-cachetools","old_version":"6.2.0.20260408","new_version":"7.0.0.20260503","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20260408","new_version":"6.0.12.20260510","repository_url":"https://github.com/python/typeshed"},{"name":"types-dateparser","old_version":"1.4.0.20260408","new_version":"1.4.0.20260508","repository_url":"https://github.com/python/typeshed"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"5.0.2","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 26 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.9.9` | `1.10.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `48.0.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.10.2` | `4.12.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.6` | `7.1.1` |\n| [coolname](https://github.com/alexanderlukanin13/coolname) | `4.2.0` | `5.0.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.4.0` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.1` | `1.41.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.8` | `3.11.9` |\n| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.14.0` | `2.14.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.45.0` | `0.47.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.19.2` | `0.20.2` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.7` | `0.11.14` |\n| [prefect-dbt](https://github.com/PrefectHQ/prefect) | `0.7.23` | `0.7.24` |\n| [prefect-redis](https://github.com/PrefectHQ/prefect) | `0.2.10` | `0.2.11` |\n| [moto](https://github.com/getmoto/moto) | `5.1.22` | `5.2.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.408` | `1.1.409` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.13` |\n| [types-cachetools](https://github.com/python/typeshed) | `6.2.0.20260408` | `7.0.0.20260503` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260408` | `6.0.12.20260510` |\n| [types-dateparser](https://github.com/python/typeshed) | `1.4.0.20260408` | `1.4.0.20260508` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `5.0.2` |\n\n\nUpdates `apprise` from 1.9.9 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThe big wow factor of this release would be the huge effort put into Matrix E2EE built into Apprise without adding overhead to the plugin itself. Huge props to those that helped out.  Other than that, a few more services have been added (137 supported now :rocket: ).\u003c/p\u003e\n\u003cp\u003eThe official documentation website (\u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) got a nice cleanup; the Service listings are now searchable; some nice tweaks to the URL Builder as well.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOpsgenie functionality ported to jira:// in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1273\"\u003ecaronc/apprise#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvolution API (WhatsApp) notification plugin by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1579\"\u003ecaronc/apprise#1579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded blink(1) support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1578\"\u003ecaronc/apprise#1578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExotel Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/782\"\u003ecaronc/apprise#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Octopush Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/622\"\u003ecaronc/apprise#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Postmark support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1590\"\u003ecaronc/apprise#1590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003entfy:// tags= changed to xtags= in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1555\"\u003ecaronc/apprise#1555\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003ethis allows tags to work again correctly for those dependant on it; previously \u003ccode\u003etags=\u003c/code\u003e conflicted with \u003ccode\u003etags=\u003c/code\u003e in Apprise)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eXMPP server hostname can differentiate to what is found in JID in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1560\"\u003ecaronc/apprise#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with mailto:// when using yahoo.com in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1561\"\u003ecaronc/apprise#1561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFluxer time dependant unittest assertion optimized for slower systems in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1566\"\u003ecaronc/apprise#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed templating references impacting url generation (on \u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1582\"\u003ecaronc/apprise#1582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed KeyError Exception thrown when certain emoji's specified in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1592\"\u003ecaronc/apprise#1592\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the Dot. (Quote/0) plugin from API v1 to API v2 by \u003ca href=\"https://github.com/HerbertGao\"\u003e\u003ccode\u003e@​HerbertGao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1512\"\u003ecaronc/apprise#1512\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Dot. plugin to better align with Apprise in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1588\"\u003ecaronc/apprise#1588\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eURLs that can not be loaded are more verbose for the reasoning in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1568\"\u003ecaronc/apprise#1568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebex wxteams:// Bot API Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1567\"\u003ecaronc/apprise#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes parse_url() -\u0026gt; url() -\u0026gt; parse_url() inconsistency in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1572\"\u003ecaronc/apprise#1572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushover Delivery Group Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1563\"\u003ecaronc/apprise#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix token template cleanup in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1573\"\u003ecaronc/apprise#1573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efcm:// add apns-push-type header for reliable iOS delivery by \u003ca href=\"https://github.com/AlbertoLanaro\"\u003e\u003ccode\u003e@​AlbertoLanaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1577\"\u003ecaronc/apprise#1577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHome Assistant \u0026quot;Service' Notification Support Added (extension to what was already there) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1294\"\u003ecaronc/apprise#1294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded attachment support to Mattermost in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1583\"\u003ecaronc/apprise#1583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Matrix E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1574\"\u003ecaronc/apprise#1574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix Hookshot support added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1586\"\u003ecaronc/apprise#1586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMastodon supports hashtag/user references in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1587\"\u003ecaronc/apprise#1587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushPlus refactored to support more options in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1589\"\u003ecaronc/apprise#1589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInproved azure:// error handling and message responses in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1499\"\u003ecaronc/apprise#1499\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1554\"\u003ecaronc/apprise#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemory-Optimized Plugin Management in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1557\"\u003ecaronc/apprise#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter configuration updated and applied to entire codebase in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1562\"\u003ecaronc/apprise#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(pt_BR): add Brazilian Portuguese translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1580\"\u003ecaronc/apprise#1580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(es): add Spanish translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1581\"\u003ecaronc/apprise#1581\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\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/caronc/apprise/commit/343c960969477b60df580f70294ce966bb4b0ce2\"\u003e\u003ccode\u003e343c960\u003c/code\u003e\u003c/a\u003e bummped version to v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/67b523077173bcf8c717b0e567b7d2e7251d21e1\"\u003e\u003ccode\u003e67b5230\u003c/code\u003e\u003c/a\u003e Inproved azure:// error handling and message responses (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1499\"\u003e#1499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/755f17479ff20fd9473e1aa15ab1b190920041c3\"\u003e\u003ccode\u003e755f174\u003c/code\u003e\u003c/a\u003e bugfix: KeyError Exception thrown when certain emoji's specified (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1592\"\u003e#1592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/a7bc56dd81ea60b1c9f59775d1e005e560a716b9\"\u003e\u003ccode\u003ea7bc56d\u003c/code\u003e\u003c/a\u003e PushPlus refactored to support more options (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1589\"\u003e#1589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9d0056b9cd4771bc752d4ff2936a1e4977e3fa81\"\u003e\u003ccode\u003e9d0056b\u003c/code\u003e\u003c/a\u003e Added Postmark support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0617ef7ac63cc6f1e850913c055e280043360358\"\u003e\u003ccode\u003e0617ef7\u003c/code\u003e\u003c/a\u003e Updated Dot. plugin to better align with Apprise standards (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1588\"\u003e#1588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0fbe0946869fab49c330d6fd5fb89ea58cb9b6db\"\u003e\u003ccode\u003e0fbe094\u003c/code\u003e\u003c/a\u003e Added Octopush Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/58d0f1e00a5e4daac928372d1b49a2886e7589f2\"\u003e\u003ccode\u003e58d0f1e\u003c/code\u003e\u003c/a\u003e Exotel Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/2a8d62fad5dc1930d8f14e0775341692ff0c5aa5\"\u003e\u003ccode\u003e2a8d62f\u003c/code\u003e\u003c/a\u003e Mastodon supports hashtag/user references (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1587\"\u003e#1587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1382633788004b515240c0f17c5b0cfe0f111554\"\u003e\u003ccode\u003e1382633\u003c/code\u003e\u003c/a\u003e Matrix Hookshot support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.9.9...v1.10.0\"\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.7 to 48.0.0\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\u003e48.0.0 - 2026-05-04\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **BACKWARDS INCOMPATIBLE:** Support for Python 3.8 has been removed.\n  ``cryptography`` now requires Python 3.9 or later.\n* **BACKWARDS INCOMPATIBLE:** Loading an X.509 CRL whose inner\n  ``TBSCertList.signature`` algorithm does not match the outer\n  ``signatureAlgorithm`` now raises ``ValueError``. Previously, such CRLs\n  were parsed successfully and only rejected during signature validation.\n* Added support for :doc:`/hazmat/primitives/asymmetric/mlkem` and\n  :doc:`/hazmat/primitives/asymmetric/mldsa` when using OpenSSL 3.5.0 or\n  later, in addition to the existing AWS-LC and BoringSSL support. This means\n  post-quantum algorithms are now available to users of our wheels.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Going forward, we do not guarantee that all functionality\u003cbr /\u003e\nin \u003ccode\u003ecryptography\u003c/code\u003e will be available when building against\u003cbr /\u003e\nOpenSSL. See :doc:\u003ccode\u003e/statements/state-of-openssl\u003c/code\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v47-0-0:\u003c/p\u003e\n\u003cp\u003e47.0.0 - 2026-04-24\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.8 is deprecated and will be removed in the next\n\u003ccode\u003ecryptography\u003c/code\u003e release.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for binary elliptic curves\n(\u003ccode\u003eSECT*\u003c/code\u003e classes) has been removed. These curves are rarely used and\nhave additional security considerations that make them undesirable.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for OpenSSL 1.1.x has been removed.\nOpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC\ncontinue to be supported.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Dropped support for LibreSSL \u0026lt; 4.1.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Loading keys with unsupported algorithms or\nkeys with unsupported explicit curve encodings now raises\n:class:\u003ccode\u003e~cryptography.exceptions.UnsupportedAlgorithm\u003c/code\u003e instead of\n\u003ccode\u003eValueError\u003c/code\u003e. This change affects\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_public_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_public_key\u003c/code\u003e,\nand :meth:\u003ccode\u003e~cryptography.x509.Certificate.public_key\u003c/code\u003e when called on\ncertificates with unsupported public key algorithms.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e When parsing elliptic curve private keys, we now\nreject keys that incorrectly encode a private key of the wrong length because\nsuch keys are impossible to process in a constant-time manner. We do not\nbelieve keys with this problem are in wide use, however we may revert this\nchange based on the feedback we receive.\u003c/li\u003e\n\u003cli\u003eDeprecated passing 64-bit (8-byte) and 128-bit (16-byte) keys to\n:class:\u003ccode\u003e~cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES\u003c/code\u003e. In a\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/pyca/cryptography/commit/8e03e30e3aae01632a697e903e3593c924f0139d\"\u003e\u003ccode\u003e8e03e30\u003c/code\u003e\u003c/a\u003e bump for 48.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14796\"\u003e#14796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71\"\u003e\u003ccode\u003e295e0d2\u003c/code\u003e\u003c/a\u003e Add AGENTS.md with CLAUDE.md symlink (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14794\"\u003e#14794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8\"\u003e\u003ccode\u003e104a2de\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926\"\u003e\u003ccode\u003e67ec1e5\u003c/code\u003e\u003c/a\u003e call check_length early on AesSiv::encrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14792\"\u003e#14792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26\"\u003e\u003ccode\u003eb2da57a\u003c/code\u003e\u003c/a\u003e changelog for mldsa/mlkem for openssl (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14791\"\u003e#14791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0\"\u003e\u003ccode\u003e3cf44ad\u003c/code\u003e\u003c/a\u003e ML-KEM OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14781\"\u003e#14781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83\"\u003e\u003ccode\u003e2e31639\u003c/code\u003e\u003c/a\u003e ML-DSA OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14773\"\u003e#14773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3\"\u003e\u003ccode\u003e5affe5a\u003c/code\u003e\u003c/a\u003e fix rust nightly clippy (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14790\"\u003e#14790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec\"\u003e\u003ccode\u003e2e73ca4\u003c/code\u003e\u003c/a\u003e bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/82ebd3b9f49d49ad5fd8b4b1f1dd02487b6e1466\"\u003e\u003ccode\u003e82ebd3b\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14785\"\u003e#14785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.7...48.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2026.1.post1 to 2026.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/45957c55be9dbf013b636aeb7d22dc7bec81a9f4\"\u003e\u003ccode\u003e45957c5\u003c/code\u003e\u003c/a\u003e Bump github actions/checkout to \u003ca href=\"https://github.com/v6\"\u003e\u003ccode\u003e@​v6\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/8e927c67c98ccde3624642f2f32cd6c5208a5161\"\u003e\u003ccode\u003e8e927c6\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2026.2 (IANA 2026b)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/6f08adec7bcb382e78afedb660f94f38a093fddf\"\u003e\u003ccode\u003e6f08ade\u003c/code\u003e\u003c/a\u003e IANA 2026b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/edbfbdf8f708657ce5b9fee32e2f8eaa8647359a\"\u003e\u003ccode\u003eedbfbdf\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from dd6be6d155..8be0d5483d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/a148b0390a42ea9a95ef7f6d8c346307405708d5\"\u003e\u003ccode\u003ea148b03\u003c/code\u003e\u003c/a\u003e Fix typo in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b841195f5df79455ee3aa9ec3d8749af835dab48\"\u003e\u003ccode\u003eb841195\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2026.1.post1...release_2026.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.10.2 to 4.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.12.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow for validators to be string(s) (class method forward reference) by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/803\"\u003eBrianPugh/cyclopts#803\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.2...v4.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_should_attempt_json_list\u003c/code\u003e for detecting \u003ccode\u003elist[str] | None\u003c/code\u003e and Annotated annotations by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/800\"\u003eBrianPugh/cyclopts#800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude meta-apps when assembling usage string by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/793\"\u003eBrianPugh/cyclopts#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing python3.14 classifier by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/796\"\u003eBrianPugh/cyclopts#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003cstrong\u003euntyped\u003c/strong\u003e boolean negative name derivation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/798\"\u003eBrianPugh/cyclopts#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious completion fixes by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/794\"\u003eBrianPugh/cyclopts#794\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eusage_name\u003c/code\u003e override for configuring docs creation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/791\"\u003eBrianPugh/cyclopts#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded granular help for \u003ccode\u003edict[str, dataclass-like]\u003c/code\u003e params by \u003ca href=\"https://github.com/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hints/completion for attrs converter functions. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/784\"\u003eBrianPugh/cyclopts#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix token_count for discriminated unions by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/789\"\u003eBrianPugh/cyclopts#789\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc Internal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eprefer using consistent \u003ccode\u003eis_annotated\u003c/code\u003e over get_origin by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/792\"\u003eBrianPugh/cyclopts#792\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/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b0c66c452139de521f0bab4260eeda2af5ca15e9\"\u003e\u003ccode\u003eb0c66c4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/803\"\u003e#803\u003c/a\u003e from BrianPugh/str-reference-validator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/bad4370647e1daabbad0edabdbc2606e68574a8f\"\u003e\u003ccode\u003ebad4370\u003c/code\u003e\u003c/a\u003e Missing test coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/efe193001cce30a0e9f0f8cf854bf47171d7942d\"\u003e\u003ccode\u003eefe1930\u003c/code\u003e\u003c/a\u003e resolve string forward-referenced validators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/921b1fa36afa2faca35f5e54d366f27816bed407\"\u003e\u003ccode\u003e921b1fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/800\"\u003e#800\u003c/a\u003e from BrianPugh/json-list-detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f37a3fa84d70a2df6481296199777bd048cdd8b0\"\u003e\u003ccode\u003ef37a3fa\u003c/code\u003e\u003c/a\u003e use self.hint instead of self.field_info.annotation in _should_attempt_json_list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f54568a310a0f8fb69bf570cfc82f65320f0f005\"\u003e\u003ccode\u003ef54568a\u003c/code\u003e\u003c/a\u003e replicate bug described by \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/799\"\u003e#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/9e0806f2c1cf4a8ba1f78f4a5c6c3cee54d81d41\"\u003e\u003ccode\u003e9e0806f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/794\"\u003e#794\u003c/a\u003e from BrianPugh/better-completion-harness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ad4f7e2e1b50403069f6e5136bce6ead4a285565\"\u003e\u003ccode\u003ead4f7e2\u003c/code\u003e\u003c/a\u003e more tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5d5259f0c275456c313f8266d9ea85545d4f7573\"\u003e\u003ccode\u003e5d5259f\u003c/code\u003e\u003c/a\u003e fix: don't escape option/command names in single-quoted bash arrays\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b0dc417b95629d52321ce32aa7b2aee6377135f0\"\u003e\u003ccode\u003eb0dc417\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/798\"\u003e#798\u003c/a\u003e from BrianPugh/untyped-boolean-negative\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.6 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.1 (2026-05-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type stub improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.0 (2026-05-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type stubs based on the work of the good people at \u003ccode\u003etypeshed \u0026lt;https://github.com/python/typeshed/tree/main/stubs/cachetools/\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate unit tests.\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/tkem/cachetools/commit/2e6a2d21c44e83b56c06cc9dd738e5b7a097ce6a\"\u003e\u003ccode\u003e2e6a2d2\u003c/code\u003e\u003c/a\u003e Release v7.1.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/cc065582849e3658d2c92aac0f5c2b6271ed077f\"\u003e\u003ccode\u003ecc06558\u003c/code\u003e\u003c/a\u003e Minor typing improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/193dd62d9be4e1099039e8fba59a1fe50e8f4d08\"\u003e\u003ccode\u003e193dd62\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/393\"\u003e#393\u003c/a\u003e: Improve ambiguous overloads for decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/1ea3422e058ef8b6b7dc15beb9d44d8f7c195a62\"\u003e\u003ccode\u003e1ea3422\u003c/code\u003e\u003c/a\u003e Bump release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/d9874465a6ab6f9d1d56cef91370f9c237a7eca6\"\u003e\u003ccode\u003ed987446\u003c/code\u003e\u003c/a\u003e Release v7.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3d79e80a4a54892d1552cd17da8e27920c1918d8\"\u003e\u003ccode\u003e3d79e80\u003c/code\u003e\u003c/a\u003e Update Copilot Instructions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/83fe6bc78d0155a0036dda8a8eb1a2ddb8f26c60\"\u003e\u003ccode\u003e83fe6bc\u003c/code\u003e\u003c/a\u003e Add tox pyright check.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bd3fbc49212eb948e08e9c478e5901f1293fd1f4\"\u003e\u003ccode\u003ebd3fbc4\u003c/code\u003e\u003c/a\u003e Improve typing support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/09dd6fec4b1b2339451ab26d1ca3c7a049b8c38c\"\u003e\u003ccode\u003e09dd6fe\u003c/code\u003e\u003c/a\u003e Improve original type stubs from typeshed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/873c7013ea92b16f2f24a6001e625fabfdf951a5\"\u003e\u003ccode\u003e873c701\u003c/code\u003e\u003c/a\u003e Add typeshed typings.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.6...v7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coolname` from 4.2.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexanderlukanin13/coolname/blob/master/HISTORY.rst\"\u003ecoolname's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0 (2026-04-22)\u003c/h2\u003e\n\u003cp\u003eThis major release has new features and significant internal changes, but it is compatible with 4.x in any normal usage\nas described in documentation, and you can upgrade from 4.x with minimal unit test coverage.\u003c/p\u003e\n\u003cp\u003eThere are implementation changes that \u003cem\u003etheoretically\u003c/em\u003e can break user code in undocumented scenarios.\nEven if it breaks, most likely, it will take a minute to fix.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's new in the default generator:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eComplete typing support, tested with mypy \u003ccode\u003estrict = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a few more words, and fixed one spelling mistake.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. collapse:: Boring technical details\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* :py:class:`RandomGenerator` and global methods like :py:func:`generate_slug` now live in the top-level\n  ``coolname`` namespace.\n  It won't affect your code if you've been importing directly from ``coolname`` as per documentation.\n\u003cp\u003eBasically, instead of this:\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; from coolname import generate_slug, RandomGenerator\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.impl.RandomGenerator object at 0x7a7cb248d6a0\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.impl.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou will see this (notice no \u003ccode\u003eimpl\u003c/code\u003e):\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.RandomGenerator object at 0x75038bacde80\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIn custom generators:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDefault parameter value changed: \u003ccode\u003eensure_unique=True\u003c/code\u003e. Custom generators can forget about it\nand still generate sequences without repeating words.\nConsider also using \u003ccode\u003eensure_unique_prefix\u003c/code\u003e (disabled by default).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:doc:\u003ccode\u003eNew parameters \u0026lt;parameters-table\u0026gt;\u003c/code\u003e for advanced words/phrases lists:\n\u003ccode\u003estrip_whitespace\u003c/code\u003e, \u003ccode\u003eallow_whitespace\u003c/code\u003e, \u003ccode\u003eseparator\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhat is considered a valid word? It's now controlled by \u003ccode\u003eword_regex\u003c/code\u003e parameter, \u003ccode\u003e\\w+\u003c/code\u003e by default.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/7d450781390fc2193b676a339e34adb697f1febb\"\u003e\u003ccode\u003e7d45078\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/13541d9e8e768751898732e51188defb5524917d\"\u003e\u003ccode\u003e13541d9\u003c/code\u003e\u003c/a\u003e docs: autodoc fix - build package first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/8015c5efc0f209a685be2ff6b5bc5f82c5594996\"\u003e\u003ccode\u003e8015c5e\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/659fad71955a169543a76acb5188af68ea1a8b95\"\u003e\u003ccode\u003e659fad7\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/3a1d21b788f9276b2ff8421b1a7f20e90df25fa8\"\u003e\u003ccode\u003e3a1d21b\u003c/code\u003e\u003c/a\u003e docs: HISTORY\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/a351596508e19f178ce5513f9029f2cd662d8338\"\u003e\u003ccode\u003ea351596\u003c/code\u003e\u003c/a\u003e feat: number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/9e04baba3f69c1465ad8e85c384f58af5904b309\"\u003e\u003ccode\u003e9e04bab\u003c/code\u003e\u003c/a\u003e work in progress\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/4f0b8f98a5cc5937f27eefcde8b8e6acc3f988c2\"\u003e\u003ccode\u003e4f0b8f9\u003c/code\u003e\u003c/a\u003e improved: PhraseSplitter clearer error messages + tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e9cceba9fc104145588447f0e9a07d5b223914ab\"\u003e\u003ccode\u003ee9cceba\u003c/code\u003e\u003c/a\u003e refactor: use pathlib.Path in coolname.loader; updated tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e6484ed0c9d1c6cd1258f05218f2a1dae0cbabf6\"\u003e\u003ccode\u003ee6484ed\u003c/code\u003e\u003c/a\u003e Bump pytest from 7.4.4 to 9.0.3 in /requirements\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexanderlukanin13/coolname/compare/4.2.0...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.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\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/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.136.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 `fsspec` from 2026.3.0 to 2026.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8fdedd1fd17be354f75f0cec1f973d93416c704b\"\u003e\u003ccode\u003e8fdedd1\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8205d0d1afecb64f34565ebeb073b7f1959a869d\"\u003e\u003ccode\u003e8205d0d\u003c/code\u003e\u003c/a\u003e Release (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/50bfba22200077fa602038857e19d58cc2541db5\"\u003e\u003ccode\u003e50bfba2\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/f58bc851213ab3a87b2d26c01c9d26b291b0e1d3\"\u003e\u003ccode\u003ef58bc85\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c6c7b40b7794c6e554d9dcae7bf4930bba67e403\"\u003e\u003ccode\u003ec6c7b40\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/3bc67f85c3b67c5adef11af35761fd839de306fb\"\u003e\u003ccode\u003e3bc67f8\u003c/code\u003e\u003c/a\u003e DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/0b290bf1336bb15d4327afcdf743d9a17b5ea762\"\u003e\u003ccode\u003e0b290bf\u003c/code\u003e\u003c/a\u003e docs: add URL handling note to HTTPFileSystem class docstring (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/b33a2d6c3b6912c645d9a315791f41e74bff4c66\"\u003e\u003ccode\u003eb33a2d6\u003c/code\u003e\u003c/a\u003e ci: install downstream systems like gcsfs before testing so the \u003ccode\u003e_version.py\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e9e7a5b5eab42b6c6d0790aa0aa510f66fc44630\"\u003e\u003ccode\u003ee9e7a5b\u003c/code\u003e\u003c/a\u003e Delegate DirFileSystem delete and write_text (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2022\"\u003e#2022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/105d614a443e3f46236deb87442cc5491741687c\"\u003e\u003ccode\u003e105d614\u003c/code\u003e\u003c/a\u003e fix: use encode_url() in _pipe_file for consistency (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2023\"\u003e#2023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2026.3.0...2026.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.39.1 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\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/open-telemetry/opentelemetry-python/commit/760e0248edbd01ae817941c1dfa61c07241b0727\"\u003e\u003ccode\u003e760e024\u003c/code\u003e\u003c/a\u003e Prepare release 1.41.1/0.62b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/90e06bcd8c024a38ecf388c19c5a15fc094ea0ed\"\u003e\u003ccode\u003e90e06bc\u003c/code\u003e\u003c/a\u003e Unreleased changelog for 1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.11.8 to 3.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9 - 2026-05-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a\"\u003e\u003ccode\u003e705515d\u003c/code\u003e\u003c/a\u003e 3.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6\"\u003e\u003ccode\u003ed19055d\u003c/code\u003e\u003c/a\u003e build update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0\"\u003e\u003ccode\u003e77e2d96\u003c/code\u003e\u003c/a\u003e MSRV 1.95, remove compiler feature detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.8...3.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.1 to 26.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \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/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now 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/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details 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/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite 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/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation 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/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example 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/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor 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/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees 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/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd 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/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1169\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.3 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\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/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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/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\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.46.3 to 2.46.4\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/py...\n\n_Description has been truncated_","html_url":"https://github.com/sxarsky/eval-prefect/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sxarsky%2Feval-prefect/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"}},{"old_version":"4.4.0","new_version":"4.5.0","update_type":"minor","path":null,"pr_created_at":"2026-05-08T19:05:22.000Z","version_change":"4.4.0 → 4.5.0","issue":{"uuid":"4408721398","node_id":"PR_kwDOBR6lPc7Zpu8L","number":11899,"state":"open","title":"chore(deps): bump the dependencies group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["python","dependencies"],"assignees":["matmair"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-08T19:05:22.000Z","updated_at":"2026-05-09T22:13:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":21,"packages":[{"name":"bleach","old_version":"4.1.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"boto3","old_version":"1.42.96","new_version":"1.43.1","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.96","new_version":"1.43.1","repository_url":"https://github.com/boto/botocore"},{"name":"django-q2","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/GDay/django-q2"},{"name":"dulwich","old_version":"1.2.0","new_version":"1.2.1","repository_url":"https://github.com/dulwich/dulwich"},{"name":"icalendar","old_version":"7.0.3","new_version":"7.1.0","repository_url":"https://github.com/collective/icalendar"},{"name":"importlib-metadata","old_version":"8.7.1","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"nh3","old_version":"0.3.4","new_version":"0.3.5","repository_url":"https://github.com/messense/nh3"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.34.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"s3transfer","old_version":"0.16.1","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 21 updates in the /src/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.96` | `1.43.1` |\n| [botocore](https://github.com/boto/botocore) | `1.42.96` | `1.43.1` |\n| [django-q2](https://github.com/GDay/django-q2) | `1.9.0` | `1.10.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `1.2.0` | `1.2.1` |\n| [icalendar](https://github.com/collective/icalendar) | `7.0.3` | `7.1.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.4` | `0.3.5` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.1` | `0.17.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `4.5.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.0` |\n\n\nUpdates `bleach` from 4.1.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.96 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/753bcab42942e4e0f6e3deb5e4eb5af40d0ffb8b\"\u003e\u003ccode\u003e753bcab\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dd5b3a659894c0c8c92c4c696625fe7735fddcb1\"\u003e\u003ccode\u003edd5b3a6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014f4adb1a991f5575fca9688568a388e9f0d339\"\u003e\u003ccode\u003e014f4ad\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/32edf1c268b58c8e16e144271252ce90ebfdc1ef\"\u003e\u003ccode\u003e32edf1c\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4781\"\u003e#4781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/959ae842a0048833cab303e1cf88dfc523f604b1\"\u003e\u003ccode\u003e959ae84\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/146ede25caacdfdc8bff79cc8f5028292dfe41f6\"\u003e\u003ccode\u003e146ede2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/048bf84492d9d55b327a67f4ab07476eb62c2ee1\"\u003e\u003ccode\u003e048bf84\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/20381d5695aa766f041b42dcda9600e14f32bd15\"\u003e\u003ccode\u003e20381d5\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ee6aa9711b74b165eac0b26bb724c7326791dc24\"\u003e\u003ccode\u003eee6aa97\u003c/code\u003e\u003c/a\u003e Deprecate Python 3.9 support (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1780d6b791333f1279e03a04a2efc476af2af5d9\"\u003e\u003ccode\u003e1780d6b\u003c/code\u003e\u003c/a\u003e Remove CC-BY-NC-SA-4.0 license headers from docs files (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4778\"\u003e#4778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.96...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.96 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7084f04c816749a7275317441440f3705ec25cf4\"\u003e\u003ccode\u003e7084f04\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1dd07e0619e1c4d7eaa5443e7a28667f7b0a5431\"\u003e\u003ccode\u003e1dd07e0\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/eebf8158db41450f23ae0365dcbb3d8671311490\"\u003e\u003ccode\u003eeebf815\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/98952d24c3e7cecd87b48f717c358ab526f065b0\"\u003e\u003ccode\u003e98952d2\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/33559569fbb76b88e23f9e7be870be028e44a45e\"\u003e\u003ccode\u003e3355956\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/05dafea17e8a7758d0099d11ef573b8a62c413bf\"\u003e\u003ccode\u003e05dafea\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/dc9312350d2bf85ec07d0f7d27cd77c96fc8b5a1\"\u003e\u003ccode\u003edc93123\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/047f23f3b089f10c098010d41e0c355cc13a92be\"\u003e\u003ccode\u003e047f23f\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/44df5850e51fe566075fd5ecd3a8a512aedec47a\"\u003e\u003ccode\u003e44df585\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/924fe63134e9608c083b298a9e3007d64453e27e\"\u003e\u003ccode\u003e924fe63\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.96...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-q2` from 1.9.0 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GDay/django-q2/releases\"\u003edjango-q2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import by \u003ca href=\"https://github.com/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd worker-process post-execute signal by \u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003easync_iter: fix BadSignature after the default Django cache expires by \u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation by \u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update Django Q2 compatibility information by \u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e by \u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: qmonitor crash when passing int values to term.center by \u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list by \u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations by \u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/noHairMan\"\u003e\u003ccode\u003e@​noHairMan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prollings\"\u003e\u003ccode\u003e@​prollings\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbachry\"\u003e\u003ccode\u003e@​mbachry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lybcyd\"\u003e\u003ccode\u003e@​lybcyd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nikodunk\"\u003e\u003ccode\u003e@​nikodunk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Eroica\"\u003e\u003ccode\u003e@​Eroica\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thesophile\"\u003e\u003ccode\u003e@​thesophile\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Nick-Yawn\"\u003e\u003ccode\u003e@​Nick-Yawn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/7576457\"\u003e\u003ccode\u003e@​7576457\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/django-q2/django-q2/compare/v1.9.0...v1.10.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/django-q2/django-q2/blob/master/CHANGELOG.md\"\u003edjango-q2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/django-q2/django-q2/tree/v1.10.0\"\u003ev1.10.0\u003c/a\u003e (2026-05-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fix incorrect signal import (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/308\"\u003e#308\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/308\"\u003edjango-q2/django-q2#308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd post_execute_in_worker signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/309\"\u003edjango-q2/django-q2#309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/311\"\u003edjango-q2/django-q2#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/314\"\u003edjango-q2/django-q2#314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/316\"\u003edjango-q2/django-q2#316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't close DB connection if async_task was called with sync=True (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/301\"\u003edjango-q2/django-q2#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/319\"\u003edjango-q2/django-q2#319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/322\"\u003edjango-q2/django-q2#322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/325\"\u003edjango-q2/django-q2#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add ru locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e) \u003ca href=\"https://redirect.github.com/django-q2/django-q2/pull/320\"\u003edjango-q2/django-q2#320\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/django-q2/django-q2/commit/a699578c345f78b5f7faa5e34b6ccaf886ae7fd8\"\u003e\u003ccode\u003ea699578\u003c/code\u003e\u003c/a\u003e Release v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/5975a2d081db4fd6582f829e0df0dd9263ca4e28\"\u003e\u003ccode\u003e5975a2d\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003eru\u003c/code\u003e locale and improve translations (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/320\"\u003e#320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/936fdd10b134dca4c5de020ca74b178742fd923e\"\u003e\u003ccode\u003e936fdd1\u003c/code\u003e\u003c/a\u003e Update Python base image to 3.9-slim-bookworm (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/325\"\u003e#325\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/fab97463c2e724e46204fe8eab92a1a9bb8aebb2\"\u003e\u003ccode\u003efab9746\u003c/code\u003e\u003c/a\u003e Fix unbounded growth of Broker.set_stat cluster master list (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/322\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1abdc5b653d9d5c362a6fb4a73df2d08acdc642e\"\u003e\u003ccode\u003e1abdc5b\u003c/code\u003e\u003c/a\u003e Convert queue size and count to string in monitor (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/319\"\u003e#319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/01df35c92332801c21d8f12351e6b02c72608490\"\u003e\u003ccode\u003e01df35c\u003c/code\u003e\u003c/a\u003e Don't close DB connection if async_task was called with \u003ccode\u003esync=True\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/301\"\u003e#301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/573b8da528c00a1fe8accf959d14e3af4a8f4e2a\"\u003e\u003ccode\u003e573b8da\u003c/code\u003e\u003c/a\u003e Update Django Q2 compatibility information (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/316\"\u003e#316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/8a563d289dc63f587d23237437f84af0f611d049\"\u003e\u003ccode\u003e8a563d2\u003c/code\u003e\u003c/a\u003e feat:add Simplified Chinese Translation (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/314\"\u003e#314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/1b0f71a39b80c49f0fcbb9a41b54b5dfaff0c175\"\u003e\u003ccode\u003e1b0f71a\u003c/code\u003e\u003c/a\u003e Fix BadSignature after the default Django cache expires (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-q2/django-q2/commit/b51575a4b03dfd4c22da6b948dddb35e2a243bef\"\u003e\u003ccode\u003eb51575a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epost_execute_in_worker\u003c/code\u003e signal (\u003ca href=\"https://redirect.github.com/GDay/django-q2/issues/309\"\u003e#309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GDay/django-q2/compare/v1.9.0...v1.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 1.2.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges since 1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers\nwhen cloning from a local repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing\n\u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/blob/main/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.1\t2026-04-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecover from concurrent pack removals (e.g. a racing \u003ccode\u003egit repack\u003c/code\u003e or\n\u003ccode\u003egit gc --auto\u003c/code\u003e) instead of raising spurious \u003ccode\u003eKeyError\u003c/code\u003e /\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003ePack.index\u003c/code\u003e and \u003ccode\u003ePack.data\u003c/code\u003e now translate\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e during lazy load into \u003ccode\u003ePackFileDisappeared\u003c/code\u003e,\nand \u003ccode\u003ePackBasedObjectStore\u003c/code\u003e evicts the stale pack and rescans the\npack directory before retrying — equivalent to git's\n\u003ccode\u003ereprepare_packed_git()\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers when\ncloning from a local repo. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing \u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\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/jelmer/dulwich/commit/57806b8a4d041cd18bf84ba8d715f4dd0bc5e200\"\u003e\u003ccode\u003e57806b8\u003c/code\u003e\u003c/a\u003e Release 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a127d330de1ef497935146bcd978211d9894787f\"\u003e\u003ccode\u003ea127d33\u003c/code\u003e\u003c/a\u003e Honor GIT_PROTOCOL env var when picking default protocol version (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2149\"\u003e#2149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6c1697a108757766aba71624422a93900f2a867a\"\u003e\u003ccode\u003e6c1697a\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6685fde81a717d91d747953c2f9277939ea5ab6b\"\u003e\u003ccode\u003e6685fde\u003c/code\u003e\u003c/a\u003e lfs: use pathlib.Path.as_uri() for portable file:// URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/0d0b9f8d205eb45660d81d1efc5b7ff1fc579e61\"\u003e\u003ccode\u003e0d0b9f8\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a0dac57db7ba8a6d9fe67d1cf4303cef306647a2\"\u003e\u003ccode\u003ea0dac57\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/cd6ebd90fc8f2f1b267db29c418c12c7ebb971a3\"\u003e\u003ccode\u003ecd6ebd9\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/bfaf192aaba90df54e4e7b07bba11a28cf36012b\"\u003e\u003ccode\u003ebfaf192\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/06d7afdeb87f742bdfff93563fd0acd042473b0a\"\u003e\u003ccode\u003e06d7afd\u003c/code\u003e\u003c/a\u003e Move GIT_SSH/GIT_SSH_COMMAND env lookup from client.py to cli.py (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2156\"\u003e#2156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/e60e0c1a4d44441d2f6edfc01ba5098d2ed24cf0\"\u003e\u003ccode\u003ee60e0c1\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-1.2.0...dulwich-1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `icalendar` from 7.0.3 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/collective/icalendar/releases\"\u003eicalendar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003cp\u003eTo view the changes, please see the \u003ca href=\"https://icalendar.readthedocs.io/en/latest/changelog.html\"\u003eChangelog\u003c/a\u003e. This release can be installed from \u003ca href=\"https://pypi.org/project/icalendar/#history\"\u003ePyPI\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/collective/icalendar/blob/main/CHANGES.rst\"\u003eicalendar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-04-30)\u003c/h2\u003e\n\u003cp\u003eMinor changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`\n- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`\n- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`\n- Make icalendar an explicit editable install for clarity. :pr:`1268`\n- Do not run some tests until a pull request is approved. :pr:`1246`\n- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`\n- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`\n- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`\n- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`\n- Add type hints to tests directory functions. :issue:`938`\n- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.\n\u003cp\u003eNew features\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`\n- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`\n- Added ``subcomponents`` parameter to :meth:`Component.new \u0026amp;lt;icalendar.cal.component.Component.new\u0026amp;gt;`, :meth:`Event.new \u0026amp;lt;icalendar.cal.event.Event.new\u0026amp;gt;`, :meth:`Todo.new \u0026amp;lt;icalendar.cal.todo.Todo.new\u0026amp;gt;`, and :meth:`Availability.new \u0026amp;lt;icalendar.cal.availability.Availability.new\u0026amp;gt;`. :issue:`1065`\n- Switch to uv for development. :issue:`1102`\n\nBug fixes\n~~~~~~~~~\n\n- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`\n- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnknown`. :issue:`1238`\n- Test that the ``DURATION`` property catches :class:`datetime.timedelta` objects without vProperty wrappers. :issue:`884`\n- Fixed :func:`~icalendar.attr.get_end_property` to avoid allowing the creating of VEVENT components with negative durations. Only VTODO components are allowed to have negative durations. :issue:`999`\n- GitHub Actions: conditional tests now show as \u0026amp;quot;skipped\u0026amp;quot; instead of \u0026amp;quot;pending\u0026amp;quot;. :issue:`1264`\n- Fixed :meth:`Component.__eq__ \u0026amp;lt;icalendar.cal.component.Component.__eq__\u0026amp;gt;` method not being commutative when comparing subcomponents. :issue:`1224`\n- Verified that the ``VALUE`` parameter of jCal components is used for the type of the component property. :issue:`1237`\n- Fix :func:`~icalendar.parser.string.escape_char` handling of ``bytes`` input by converting with :func:`icalendar.parser_tools.to_unicode` before escaping. :issue:`1226`\n- Fixed ``RecursionError`` in ``walk()``, ``property_items()``, and ``to_ical()`` by using iterative implementations for component traversal and property extraction. :pr:`1348`\n\nDocumentation\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;Convert docstring of :func:\u0026lt;code\u0026gt;~icalendar.param.string_parameter\u0026lt;/code\u0026gt; to Google style. :issue:\u0026lt;code\u0026gt;1072\u0026lt;/code\u0026gt;, :pr:\u0026lt;code\u0026gt;1316\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Run \u0026lt;code\u0026gt;sphinx-build\u0026lt;/code\u0026gt; with \u0026lt;code\u0026gt;-W\u0026lt;/code\u0026gt; to turn warnings into errors. :issue:\u0026lt;code\u0026gt;1306\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Added \u0026lt;code\u0026gt;sphinx-llms-txt \u0026amp;lt;https://sphinx-llms-txt.readthedocs.io/en/stable/\u0026amp;gt;\u0026lt;/code\u0026gt;_ extension to generate :file:\u0026lt;code\u0026gt;llms.txt\u0026lt;/code\u0026gt; and :file:\u0026lt;code\u0026gt;llms-full.txt\u0026lt;/code\u0026gt; files for AI/LLM documentation consumption. :issue:\u0026lt;code\u0026gt;1302\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Fixed CI Vale check reporting and resolved Vale errors. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Include :file:\u0026lt;code\u0026gt;Makefile\u0026lt;/code\u0026gt; in documentation workflow path filters so documentation CI runs when Makefile logic changes, and keep Vale failures visible in CI output. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1300b76fb3fe40d987cc3715735c026b3c1a2191\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1300b76\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into 7.x\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/255e6b841331e2d5cf2901402e08ab788899d465\u0026quot;\u0026gt;\u0026lt;code\u0026gt;255e6b8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; add 7.x to run the tests\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/fc8a4f5674eaa05bf3546b296f166583f670561a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;fc8a4f5\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; disable the version switcher on the 7.x branch\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/f5aa35d2ff6d106f5a7b286970b65b5f9d9211b4\u0026quot;\u0026gt;\u0026lt;code\u0026gt;f5aa35d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; version 7.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/b4ffb8345deea76e4cca72689907ed2f8488e7de\u0026quot;\u0026gt;\u0026lt;code\u0026gt;b4ffb83\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1348\u0026quot;\u0026gt;#1348\u0026lt;/a\u0026gt; from uwezkhan/fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1d6d18d357335367d72f4628b7158dd4800caf39\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1d6d18d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/05a34d48d3223b2780c9afffd0cdbab9d5c50ffd\u0026quot;\u0026gt;\u0026lt;code\u0026gt;05a34d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1346\u0026quot;\u0026gt;#1346\u0026lt;/a\u0026gt; from uwezkhan/fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/a4829d4d43b29e430b97ab66313f6357edd3742d\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a4829d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/66579fbf8fb4aeb6bf1ded0cfa353ba3d500e35a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;66579fb\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix formatting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1f55c2035315e53b8d9a6eeacf1aee046d794fd3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1f55c20\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/compare/v7.0.3...v7.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `importlib-metadata` from 8.7.1 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#110937\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/cpython/issues/140141\"\u003epython/cpython#140141\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/cpython/issues/143658\"\u003epython/cpython#143658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved Python 3.9 compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a5c2154835facb4a9d0a6f5b3aac1f3d1ff86170\"\u003e\u003ccode\u003ea5c2154\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e66e22634f7522e7778b66e8a8b19782a11d4943\"\u003e\u003ccode\u003ee66e226\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/6027933ae96c9e51dd0b7ce392cb30f6fcae1940\"\u003e\u003ccode\u003e6027933\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b89388a53bf857127e0a6860dfcfe2cd69a79ab8\"\u003e\u003ccode\u003eb89388a\u003c/code\u003e\u003c/a\u003e Import os_helper directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2dcb761d940b0115b786ab3b6f336af7d94630f4\"\u003e\u003ccode\u003e2dcb761\u003c/code\u003e\u003c/a\u003e Add uniform exclusions for test.support.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nh3` from 0.3.4 to 0.3.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/messense/nh3/releases\"\u003enh3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd usage examples for clean() and Cleaner arguments by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/120\"\u003emessense/nh3#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd doctest coverage for module docstrings and RST files by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/121\"\u003emessense/nh3#121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyo3 from 0.28.2 to 0.28.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/messense/nh3/pull/123\"\u003emessense/nh3#123\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tags parameter to clean_text by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/122\"\u003emessense/nh3#122\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.4...v0.3.5\"\u003ehttps://github.com/messense/nh3/compare/v0.3.4...v0.3.5\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/messense/nh3/commit/9e78e6af74267c6789c62e98512460990415fb91\"\u003e\u003ccode\u003e9e78e6a\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/5225ec29f6ba74349d158676461fa6081cf804d8\"\u003e\u003ccode\u003e5225ec2\u003c/code\u003e\u003c/a\u003e Add tags parameter to clean_text (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/122\"\u003e#122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/129df5295dd98b263a3f24bd4f9bd5e43a7bb677\"\u003e\u003ccode\u003e129df52\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.2 to 0.28.3 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/25348dffb9f1373008a3f0f7d85f2ebb37883e07\"\u003e\u003ccode\u003e25348df\u003c/code\u003e\u003c/a\u003e Add doctest coverage for module docstrings and RST files (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/bf48b37d0b8e1e1bddc62ae058f880eae1a4abc2\"\u003e\u003ccode\u003ebf48b37\u003c/code\u003e\u003c/a\u003e Add usage examples for clean() and Cleaner arguments (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.4...v0.3.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-common` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-common's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\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/open-telemetry/opentelemetry-python/commit/760e0248edbd01ae817941c1dfa61c07241b0727\"\u003e\u003ccode\u003e760e024\u003c/code\u003e\u003c/a\u003e Prepare release 1.41.1/0.62b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/90e06bcd8c024a38ecf388c19c5a15fc094ea0ed\"\u003e\u003ccode\u003e90e06bc\u003c/code\u003e\u003c/a\u003e Unreleased changelog for 1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-grpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4934\"\u003e#4934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-proto-json\u003c/code\u003e, \u003ccode\u003eopentelemetry-codegen-json\u003c/code\u003e: Implement custom protoc plugin to generate OTLP JSON class definitions\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/open-telemetry/opentelemetry-python/commit/760e0248edbd01ae817941c1dfa61c07241b0727\"\u003e\u003ccode\u003e760e024\u003c/code\u003e\u003c/a\u003e Prepare release 1.41.1/0.62b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/90e06bcd8c024a38ecf388c19c5a15fc094ea0ed\"\u003e\u003ccode\u003e90e06bc\u003c/code\u003e\u003c/a\u003e Unreleased changelog for 1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/1a178fcc5c689516849ced80fb2533fe7db7a80f\"\u003e\u003ccode\u003e1a178fc\u003c/code\u003e\u003c/a\u003e [release/v1.41.x-0.62bx] Prepare release 1.41.0/0.62b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5064\"\u003e#5064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/37dea4bbdb1a3c83b96fc22c2f68a848b4989fb5\"\u003e\u003ccode\u003e37dea4b\u003c/code\u003e\u003c/a\u003e feat: add experimental logger configurator (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4980\"\u003e#4980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/7c860ca40eb87c15fb608ce3598cfec4a5da2d1c\"\u003e\u003ccode\u003e7c860ca\u003c/code\u003e\u003c/a\u003e misc: update version for codegen-json and proto-json packages (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5061\"\u003e#5061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/b3d98b392fd1fa1a501e11ce8e126f2003edb895\"\u003e\u003ccode\u003eb3d98b3\u003c/code\u003e\u003c/a\u003e [chore]: update readme (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5060\"\u003e#5060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dbbd1bca26f12d0cefff721a857d08a82476f434\"\u003e\u003ccode\u003edbbd1bc\u003c/code\u003e\u003c/a\u003e feat(config): Add MeterProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/6faa58c58782313283a87a7c61fbbdd9cd2054d6\"\u003e\u003ccode\u003e6faa58c\u003c/code\u003e\u003c/a\u003e feat(config): add host resource detector support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/c0cbfbd62fa59e2c41cd2c88371dc6478fa95716\"\u003e\u003ccode\u003ec0cbfbd\u003c/code\u003e\u003c/a\u003e feat(config): wire container resource detector via entry point loading (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/f764e45f52952f5a0287e5a6c094cbfd56accd2b\"\u003e\u003ccode\u003ef764e45\u003c/code\u003e\u003c/a\u003e feat(config): Add TracerProvider support for declarative config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-otlp-proto-http` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md\"\u003eopentelemetry-exporter-otlp-proto-http's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.41.1/0.62b1 (2026-04-24)\u003c/h2\u003e\n\u003ch2\u003eVersion 1.41.0/0.62b0 (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ehost\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].host\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5002\"\u003e#5002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003econtainer\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].container\u003c/code\u003e, using entry point loading of the \u003ccode\u003eopentelemetry-resource-detector-containerid\u003c/code\u003e contrib package\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5004\"\u003e#5004\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_tracer_provider\u003c/code\u003e/\u003ccode\u003econfigure_tracer_provider\u003c/code\u003e to declarative file configuration, enabling TracerProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4985\"\u003e#4985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnabled the flake8-tidy-import plugins rules for the ruff linter. These rules throw warnings for relative imports in the modules.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5019\"\u003e#5019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Fix \u003ccode\u003eAttributeError\u003c/code\u003e in \u003ccode\u003eExplicitBucketHistogramAggregation\u003c/code\u003e when applied to non-Histogram instruments without explicit boundaries\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5034\"\u003e#5034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBatchLogRecordProcessor\u003c/code\u003e default \u003ccode\u003eschedule_delay_millis\u003c/code\u003e from 5000ms to 1000ms to comply with the OTel specification. Note: logs may be exported 5x more frequently by default (e.g. for users who don't explicitly set the \u003ccode\u003eOTEL_BLRP_SCHEDULE_DELAY\u003c/code\u003e env var).\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003eprocess\u003c/code\u003e resource detector support to declarative file configuration via \u003ccode\u003edetection_development.detectors[].process\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add shared \u003ccode\u003e_parse_headers\u003c/code\u003e helper for declarative config OTLP exporters\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Replace a broad exception in attribute cleaning tests to satisfy pylint in the \u003ccode\u003elint-opentelemetry-api\u003c/code\u003e CI job\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_meter_provider\u003c/code\u003e/\u003ccode\u003econfigure_meter_provider\u003c/code\u003e to declarative file configuration, enabling MeterProvider instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4987\"\u003e#4987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add \u003ccode\u003ecreate_resource\u003c/code\u003e and \u003ccode\u003ecreate_propagator\u003c/code\u003e/\u003ccode\u003econfigure_propagator\u003c/code\u003e to declarative file configuration, enabling Resource and propagator instantiation from config files without reading env vars\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4979\"\u003e#4979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Map Python \u003ccode\u003eCRITICAL\u003c/code\u003e log level to OTel \u003ccode\u003eFATAL\u003c/code\u003e severity text per the specification\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4984\"\u003e#4984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add file configuration support with YAML/JSON loading, environment variable substitution, and schema validation against the vendored OTel config JSON schema\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4898\"\u003e#4898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent CI failures in \u003ccode\u003egetting-started\u003c/code\u003e and \u003ccode\u003etracecontext\u003c/code\u003e jobs caused by GitHub git CDN SHA propagation lag by installing contrib packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4958\"\u003e#4958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: fix type annotations on \u003ccode\u003eMetricReader\u003c/code\u003e and related types\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4938/\"\u003e#4938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement log creation metric\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4935\"\u003e#4935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement metric reader metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: implement processor metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/5012\"\u003e#5012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: upgrade vendored OTel configuration schema from v1.0.0-rc.3 to v1.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4965\"\u003e#4965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimprove check-links ci job\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve some Pyright type errors in Span/ReadableSpan and utility stubs\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4973\"\u003e#4973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-prometheus\u003c/code\u003e: Fix metric name prefix\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e, \u003ccode\u003eopentelemetry-sdk\u003c/code\u003e: Add deepcopy support for \u003ccode\u003eBoundedAttributes\u003c/code\u003e and \u003ccode\u003eBoundedList\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-pytho...\n\n_Description has been truncated_","html_url":"https://github.com/inventree/InvenTree/pull/11899","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/inventree%2FInvenTree/issues/11899","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11899/packages"}},{"old_version":"4.3.0","new_version":"4.5.0","update_type":"minor","path":null,"pr_created_at":"2026-05-08T05:28:38.000Z","version_change":"4.3.0 → 4.5.0","issue":{"uuid":"4404007221","node_id":"PR_kwDOLzxzKM7ZaFVT","number":323,"state":"open","title":"chore(deps): bump the dependencies group across 2 directories with 47 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["matmair"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-08T05:28:38.000Z","updated_at":"2026-05-08T05:31:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"dependencies","update_count":47,"packages":[{"name":"bleach","old_version":"4.1.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"boto3","old_version":"1.42.87","new_version":"1.43.1","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.87","new_version":"1.43.1","repository_url":"https://github.com/boto/botocore"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cryptography","old_version":"46.0.7","new_version":"47.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"django","old_version":"5.2.13","new_version":"6.0.4","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.14.3","new_version":"65.16.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-anymail","old_version":"14.0","new_version":"15.0","repository_url":"https://github.com/anymail/django-anymail"},{"name":"django-otp","old_version":"1.3.0","new_version":"1.7.0","repository_url":"https://github.com/django-otp/django-otp"},{"name":"dulwich","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/dulwich/dulwich"},{"name":"fido2","old_version":"2.1.1","new_version":"2.2.0","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"icalendar","old_version":"7.0.3","new_version":"7.1.0","repository_url":"https://github.com/collective/icalendar"},{"name":"idna","old_version":"3.11","new_version":"3.13","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":"lxml","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/lxml/lxml"},{"name":"nh3","old_version":"0.3.4","new_version":"0.3.5","repository_url":"https://github.com/messense/nh3"},{"name":"opentelemetry-exporter-otlp-proto-common","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-grpc","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-proto","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.34.1","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"s3transfer","old_version":"0.16.0","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"tzdata","old_version":"2026.1","new_version":"2026.2","repository_url":"https://github.com/python/tzdata"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"zipp","old_version":"3.23.0","new_version":"3.23.1","repository_url":"https://github.com/jaraco/zipp"},{"name":"build","old_version":"1.4.2","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"click","old_version":"8.3.2","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"django-stubs","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"django-stubs-ext","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"django-types","old_version":"0.23.0","new_version":"0.24.0","repository_url":"https://github.com/sbdchd/django-types"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.18","new_version":"2.6.19","repository_url":"https://github.com/pre-commit/identify"},{"name":"pip","old_version":"26.0.1","new_version":"26.1","repository_url":"https://github.com/pypa/pip"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ty","old_version":"0.0.1a21","new_version":"0.0.33","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-psycopg2","old_version":"2.9.21.20260408","new_version":"2.9.21.20260422","repository_url":"https://github.com/python/typeshed"},{"name":"virtualenv","old_version":"21.2.1","new_version":"21.3.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wheel","old_version":"0.46.3","new_version":"0.47.0","repository_url":"https://github.com/pypa/wheel"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 1 update in the /docs directory: [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings).\nBumps the dependencies group with 46 updates in the /src/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.87` | `1.43.1` |\n| [botocore](https://github.com/boto/botocore) | `1.42.87` | `1.43.1` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `47.0.0` |\n| [django](https://github.com/django/django) | `5.2.13` | `6.0.4` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.14.3` | `65.16.1` |\n| [django-anymail](https://github.com/anymail/django-anymail) | `14.0` | `15.0` |\n| [django-otp](https://github.com/django-otp/django-otp) | `1.3.0` | `1.7.0` |\n| [dulwich](https://github.com/dulwich/dulwich) | `1.1.0` | `1.2.1` |\n| [fido2](https://github.com/Yubico/python-fido2) | `2.1.1` | `2.2.0` |\n| [icalendar](https://github.com/collective/icalendar) | `7.0.3` | `7.1.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.3` | `6.1.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.4` | `0.3.5` |\n| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.58.0` |\n| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.2` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.23.0` | `3.23.1` |\n| [build](https://github.com/pypa/build) | `1.4.2` | `1.5.0` |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.3.3` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.2` | `6.0.3` |\n| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.0.2` | `6.0.3` |\n| [django-types](https://github.com/sbdchd/django-types) | `0.23.0` | `0.24.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |\n| [pip](https://github.com/pypa/pip) | `26.0.1` | `26.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.3.0` | `4.5.0` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a21` | `0.0.33` |\n| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260408` | `2.9.21.20260422` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.1` | `21.3.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.46.3` | `0.47.0` |\n\n\nUpdates `mkdocstrings` from 1.0.3 to 1.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4\"\u003e1.0.4\u003c/a\u003e - 2026-04-15\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4\"\u003eCompare with 1.0.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd timeout when downloading inventories (10 seconds) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd\"\u003e3d1969a\u003c/a\u003e by Simon Lloyd). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/819\"\u003eIssue-819\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4\"\u003e1.0.4\u003c/a\u003e - 2026-04-15\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4\"\u003eCompare with 1.0.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd timeout when downloading inventories (10 seconds) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd\"\u003e3d1969a\u003c/a\u003e by Simon Lloyd). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/819\"\u003eIssue-819\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/mkdocstrings/mkdocstrings/commit/a938528b51b42cde52465d06d8b1a52484837366\"\u003e\u003ccode\u003ea938528\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/1eaa2242ec33e4b6ce666f0bbc25391f2a72c1d2\"\u003e\u003ccode\u003e1eaa224\u003c/code\u003e\u003c/a\u003e ci: Lint and type-check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/80e090d0bfbfa5688639e78559a4bb7bd3f7a55b\"\u003e\u003ccode\u003e80e090d\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/mkdocstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/5f82a5822c50dc928ee4a133c1445543d3afa393\"\u003e\u003ccode\u003e5f82a58\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd\"\u003e\u003ccode\u003e3d1969a\u003c/code\u003e\u003c/a\u003e fix: Add timeout when downloading inventories (10 seconds)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/a0c47b9992416cf02b8dfc7a76a6c5503e98cd9c\"\u003e\u003ccode\u003ea0c47b9\u003c/code\u003e\u003c/a\u003e docs: Fix broken link in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/e500a2b416656ede76aac316304415e428dd0aa1\"\u003e\u003ccode\u003ee500a2b\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bleach` from 4.1.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.87 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/753bcab42942e4e0f6e3deb5e4eb5af40d0ffb8b\"\u003e\u003ccode\u003e753bcab\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dd5b3a659894c0c8c92c4c696625fe7735fddcb1\"\u003e\u003ccode\u003edd5b3a6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/014f4adb1a991f5575fca9688568a388e9f0d339\"\u003e\u003ccode\u003e014f4ad\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/32edf1c268b58c8e16e144271252ce90ebfdc1ef\"\u003e\u003ccode\u003e32edf1c\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4781\"\u003e#4781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/959ae842a0048833cab303e1cf88dfc523f604b1\"\u003e\u003ccode\u003e959ae84\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/146ede25caacdfdc8bff79cc8f5028292dfe41f6\"\u003e\u003ccode\u003e146ede2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/048bf84492d9d55b327a67f4ab07476eb62c2ee1\"\u003e\u003ccode\u003e048bf84\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/20381d5695aa766f041b42dcda9600e14f32bd15\"\u003e\u003ccode\u003e20381d5\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ee6aa9711b74b165eac0b26bb724c7326791dc24\"\u003e\u003ccode\u003eee6aa97\u003c/code\u003e\u003c/a\u003e Deprecate Python 3.9 support (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4770\"\u003e#4770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1780d6b791333f1279e03a04a2efc476af2af5d9\"\u003e\u003ccode\u003e1780d6b\u003c/code\u003e\u003c/a\u003e Remove CC-BY-NC-SA-4.0 license headers from docs files (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4778\"\u003e#4778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.87...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.87 to 1.43.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7084f04c816749a7275317441440f3705ec25cf4\"\u003e\u003ccode\u003e7084f04\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1dd07e0619e1c4d7eaa5443e7a28667f7b0a5431\"\u003e\u003ccode\u003e1dd07e0\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/eebf8158db41450f23ae0365dcbb3d8671311490\"\u003e\u003ccode\u003eeebf815\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/98952d24c3e7cecd87b48f717c358ab526f065b0\"\u003e\u003ccode\u003e98952d2\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/33559569fbb76b88e23f9e7be870be028e44a45e\"\u003e\u003ccode\u003e3355956\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.4 to 2.33.1 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/05dafea17e8a7758d0099d11ef573b8a62c413bf\"\u003e\u003ccode\u003e05dafea\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/dc9312350d2bf85ec07d0f7d27cd77c96fc8b5a1\"\u003e\u003ccode\u003edc93123\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.0' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/047f23f3b089f10c098010d41e0c355cc13a92be\"\u003e\u003ccode\u003e047f23f\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/44df5850e51fe566075fd5ecd3a8a512aedec47a\"\u003e\u003ccode\u003e44df585\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/924fe63134e9608c083b298a9e3007d64453e27e\"\u003e\u003ccode\u003e924fe63\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.87...1.43.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\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.7 to 47.0.0\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\u003e47.0.0 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Support for Python 3.8 is deprecated and will be removed in the next\n  ``cryptography`` release.\n* **BACKWARDS INCOMPATIBLE:** Support for binary elliptic curves\n  (``SECT*`` classes) has been removed. These curves are rarely used and\n  have additional security considerations that make them undesirable.\n* **BACKWARDS INCOMPATIBLE:** Support for OpenSSL 1.1.x has been removed.\n  OpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC\n  continue to be supported.\n* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL \u0026lt; 4.1.\n* **BACKWARDS INCOMPATIBLE:** Loading keys with unsupported algorithms or\n  keys with unsupported explicit curve encodings now raises\n  :class:`~cryptography.exceptions.UnsupportedAlgorithm` instead of\n  ``ValueError``. This change affects\n  :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`,\n  :func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`,\n  :func:`~cryptography.hazmat.primitives.serialization.load_pem_public_key`,\n  :func:`~cryptography.hazmat.primitives.serialization.load_der_public_key`,\n  and :meth:`~cryptography.x509.Certificate.public_key` when called on\n  certificates with unsupported public key algorithms.\n* **BACKWARDS INCOMPATIBLE:** When parsing elliptic curve private keys, we now\n  reject keys that incorrectly encode a private key of the wrong length because\n  such keys are impossible to process in a constant-time manner. We do not\n  believe keys with this problem are in wide use, however we may revert this\n  change based on the feedback we receive.\n* Deprecated passing 64-bit (8-byte) and 128-bit (16-byte) keys to\n  :class:`~cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES`. In a\n  future release, only 192-bit (24-byte) keys will be accepted. Users should\n  expand shorter keys themselves (e.g., for single DES: ``key + key + key``,\n  for two-key: ``key + key[:8]``).\n* Updated the minimum supported Rust version (MSRV) to 1.83.0, from 1.74.0.\n* Support for ``x86_64`` macOS (including publishing wheels) is deprecated\n  and will be removed in the next release. We will switch to publishing an\n  ``arm64`` only wheel for macOS.\n* Support for 32-bit Windows (including publishing wheels) is deprecated\n  and will be removed in the next release. Users should move to a 64-bit\n  Python installation.\n* ``public_bytes`` and ``private_bytes`` methods on keys now raise\n  ``TypeError`` (instead of ``ValueError``) if an invalid encoding is provided\n  for the given ``format``.\n* Moved :class:`~cryptography.hazmat.decrepit.ciphers.modes.CFB`,\n  :class:`~cryptography.hazmat.decrepit.ciphers.modes.OFB`, and\n  :class:`~cryptography.hazmat.decrepit.ciphers.modes.CFB8` into\n  :doc:`/hazmat/decrepit/index` and deprecated them in the ``modes`` module.\n  They will be removed from the ``modes`` module in 49.0.0.\n* Moved :class:`~cryptography.hazmat.primitives.ciphers.algorithms.Camellia`\n  into  :doc:`/hazmat/decrepit/index` and deprecated it in the ``cipher`` module.\n  It will be removed from the ``cipher`` module in 49.0.0.\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/pyca/cryptography/commit/59c5f5e4b9395f32d407f66467d59ccea9f9829f\"\u003e\u003ccode\u003e59c5f5e\u003c/code\u003e\u003c/a\u003e bump for 47.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14730\"\u003e#14730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/9025578c87f14096f9332264881f5370a1c64e93\"\u003e\u003ccode\u003e9025578\u003c/code\u003e\u003c/a\u003e Add MLKEM1024-P384 hybrid KEM support in HPKE (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14722\"\u003e#14722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ef66de49e0bd281da86750178ab2fb4b5b104162\"\u003e\u003ccode\u003eef66de4\u003c/code\u003e\u003c/a\u003e Recommend Argon2id over PBKDF2HMAC as KDF (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14724\"\u003e#14724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/d996a37666524c606419e71de15eb527bae655aa\"\u003e\u003ccode\u003ed996a37\u003c/code\u003e\u003c/a\u003e Add ubuntu-resolute to CI workflow (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14729\"\u003e#14729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e86da41ff7e21a04529a933856dc27dacd9e7fc0\"\u003e\u003ccode\u003ee86da41\u003c/code\u003e\u003c/a\u003e chore(deps): bump libc from 0.2.185 to 0.2.186 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14725\"\u003e#14725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/1c33c9a5d96a7b1a975ab5a465a75517e0ebadd6\"\u003e\u003ccode\u003e1c33c9a\u003c/code\u003e\u003c/a\u003e Bump downstream dependencies in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14728\"\u003e#14728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67fb6be685bbc0952a47cf18e9ee4533b411cd8b\"\u003e\u003ccode\u003e67fb6be\u003c/code\u003e\u003c/a\u003e Bump x509-limbo and/or wycheproof in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14727\"\u003e#14727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6cb20b3141c6391ae11075f30b992375c05adad5\"\u003e\u003ccode\u003e6cb20b3\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14726\"\u003e#14726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/d6f372d7ea7f7df96aeda240252a23b6ed46bc71\"\u003e\u003ccode\u003ed6f372d\u003c/code\u003e\u003c/a\u003e Update supported OpenSSL versions in installation docs (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14721\"\u003e#14721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/ebd26194cd6a3315b122a44d2ee5aeb138bee55b\"\u003e\u003ccode\u003eebd2619\u003c/code\u003e\u003c/a\u003e openssl 3.3 is out of upstream support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14720\"\u003e#14720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.7...47.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.2.13 to 6.0.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/141e791f48592011b0f38fb30d44291e3ce74ee0\"\u003e\u003ccode\u003e141e791\u003c/code\u003e\u003c/a\u003e [6.0.x] Bumped version for 6.0.4 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/393dbc53e848876fdba92fbf02e10ee6a6eace6b\"\u003e\u003ccode\u003e393dbc5\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-33034 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE on body ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0910af60468216c856dfbcac1177372c225deb76\"\u003e\u003ccode\u003e0910af6\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/428c48f358c5a0ed5ca2834fb721d615eb2b0e11\"\u003e\u003ccode\u003e428c48f\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-4292 -- Disallowed instance creation via ModelAdmin.li...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/08a752c1cd8f378b4c64d96c319da23726df6ed3\"\u003e\u003ccode\u003e08a752c\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-4277 -- Checked add permissions in GenericInlineModelA...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a623c3982857e80324448f85c7faf9a6710330ef\"\u003e\u003ccode\u003ea623c39\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed CVE-2026-3902 -- Ignored headers with underscores in ASGIRequest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ffc83c554a7bc99e138445fa2c4beaf0ca17c71c\"\u003e\u003ccode\u003effc83c5\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36949\"\u003e#36949\u003c/a\u003e -- Removed hardcoded pks in modeladmin tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4eb38f6994f233feeac5852cbee2ae6663a9b1ef\"\u003e\u003ccode\u003e4eb38f6\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36973\"\u003e#36973\u003c/a\u003e -- Made fields.E348 check detect further clashes between...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/640c431a47c4075538e1de0211501f911346b65e\"\u003e\u003ccode\u003e640c431\u003c/code\u003e\u003c/a\u003e [6.0.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36862\"\u003e#36862\u003c/a\u003e -- Reiterated security note on both variants of RemoteUse...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ea8e293fda0dd1e78f5489efa73e5d19e195b4f0\"\u003e\u003ccode\u003eea8e293\u003c/code\u003e\u003c/a\u003e [6.0.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36949\"\u003e#36949\u003c/a\u003e -- Improved RelatedFieldWidgetWrapper \u0026lt;label\u0026gt;s.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.13...6.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.14.3 to 65.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-anymail` from 14.0 to 15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anymail/django-anymail/releases\"\u003edjango-anymail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://anymail.dev/en/stable/changelog/#v15-0\"\u003eChangelog\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/anymail/django-anymail/blob/main/CHANGELOG.rst\"\u003edjango-anymail's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-04-18\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Require **Django 5.0 or later** and Python 3.10 or later.\n  (Thanks to `@terencehonles`_.)\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **Resend:** Add support for inbound email. (Thanks to `@btimby`_.)\n\nFixes\n~~~~~\n\n* **Inbound:** Convert carriage return and line feed characters in attachment\n  filenames to spaces for ESPs that parse them from invalid headers (e.g.,\n  Postmark). (Thanks to `@BHSPitMonkey`_ for reporting the issue and providing\n  an example.)\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/17acea06b9361c3cc4ab6d9678bd5aea45db80ff\u0026quot;\u0026gt;\u0026lt;code\u0026gt;17acea0\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Release 15.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/8ad9d6e7e463efb770e3440871a05f2be4249ddf\u0026quot;\u0026gt;\u0026lt;code\u0026gt;8ad9d6e\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Inbound: sanitize CRNL in ESP-parsed attachment filenames\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/a6339d6c65bed21bcfe28e3c7b9b4ada4a290263\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a6339d6\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Upgrade actions versions\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/4626462d49512b0c423071a8a6fe43a9610ead8a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;4626462\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Drop Django 4.x\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/2bcfd620d2f1fa6705a13ad8645aa25a4572fd08\u0026quot;\u0026gt;\u0026lt;code\u0026gt;2bcfd62\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Resend: Add inbound support\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/13a08718571ca853f04336e15c525a98dd6dc48a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;13a0871\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Run pyupgrade\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/commit/7bf7a1a42e7fe1dbc008d22dc6d03579e4523b34\u0026quot;\u0026gt;\u0026lt;code\u0026gt;7bf7a1a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Drop Django 4.0--4.2, Python 3.8--3.9 support\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;See full diff in \u0026lt;a href=\u0026quot;https://github.com/anymail/django-anymail/compare/v14.0...v15.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `django-otp` from 1.3.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-otp/django-otp/blob/master/CHANGES.rst\"\u003edjango-otp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 - January 07, 2026 - Async support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#185](https://github.com/django-otp/django-otp/issues/185)\u003c/code\u003e_: Make OTPMiddleware async capable\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Aljosha Papsch.\u003c/p\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/185\"\u003edjango-otp/django-otp#185\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.3 - October 25, 2025 - Spanish update\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#182](https://github.com/django-otp/django-otp/issues/182)\u003c/code\u003e_: Correct missing Spanish translations\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#181](https://github.com/django-otp/django-otp/issues/181)\u003c/code\u003e_: Wrong :rtype: in StaticToken.random_token docstring\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003edjango-otp/django-otp#181\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/182\"\u003e#182\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/182\"\u003edjango-otp/django-otp#182\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.2 - October 21, 2025 - Cleanup\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#179](https://github.com/django-otp/django-otp/issues/179)\u003c/code\u003e_: Add missing gettext strings\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#180](https://github.com/django-otp/django-otp/issues/180)\u003c/code\u003e_: Remove tests from wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/179\"\u003e#179\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/179\"\u003edjango-otp/django-otp#179\u003c/a\u003e\n.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/180\"\u003e#180\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/180\"\u003edjango-otp/django-otp#180\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.1 - July 08, 2025 - Small improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow a {token} placeholder in :setting:\u003ccode\u003eOTP_EMAIL_SUBJECT\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 - April 02, 2025 - Django 5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate test matrix for Django 5.2.\u003c/li\u003e\n\u003cli\u003eRemove support for Django 3.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.5.4 - September 06, 2024 - Ignore proxy models when enumerating device classes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#161](https://github.com/django-otp/django-otp/issues/161)\u003c/code\u003e_: Discard proxied models when iterating device models\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/161\"\u003e#161\u003c/a\u003e: \u003ca href=\"https://redirect.github.com/django-otp/django-otp/pull/161\"\u003edjango-otp/django-otp#161\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/django-otp/django-otp/commit/fc0d50b6f66da10fad250ce1640f0385f3229f48\"\u003e\u003ccode\u003efc0d50b\u003c/code\u003e\u003c/a\u003e Version 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/56e4ce3b5618de5d5a8a24c9eb709b51802ad06b\"\u003e\u003ccode\u003e56e4ce3\u003c/code\u003e\u003c/a\u003e Refactor test utilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/8c4d4c23649316c55dad6a79fb06fa975e5e4702\"\u003e\u003ccode\u003e8c4d4c2\u003c/code\u003e\u003c/a\u003e Update test matrix for Django 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/0ac4ff33aa88fa73c12aa60713881481116a6d5f\"\u003e\u003ccode\u003e0ac4ff3\u003c/code\u003e\u003c/a\u003e Cleanup and changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b10df0d8cb94c8242ca48bbcea3d307b553808a5\"\u003e\u003ccode\u003eb10df0d\u003c/code\u003e\u003c/a\u003e Make OTPMiddleware async capable. (\u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/185\"\u003e#185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/81211794b8cc9c8befc6c8330b6652d3c4e78fd5\"\u003e\u003ccode\u003e8121179\u003c/code\u003e\u003c/a\u003e Raise requires-python to 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/38b7ebabd7b4817aec92f884d448eeb462e82108\"\u003e\u003ccode\u003e38b7eba\u003c/code\u003e\u003c/a\u003e Version 1.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/b9026d7025da45b0144c99e91b5286c734448012\"\u003e\u003ccode\u003eb9026d7\u003c/code\u003e\u003c/a\u003e Correct Missing Spanish Translations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/ae18ba95bd03534e15583d456572f86ea2f41442\"\u003e\u003ccode\u003eae18ba9\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/django-otp/django-otp/issues/181\"\u003e#181\u003c/a\u003e: misdocumented return type.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-otp/django-otp/commit/c9eef89240985293e0c9f197d0257a5352cfb62d\"\u003e\u003ccode\u003ec9eef89\u003c/code\u003e\u003c/a\u003e Version 1.6.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-otp/django-otp/compare/v1.3.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dulwich` from 1.1.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dulwich/dulwich/releases\"\u003edulwich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edulwich-1.2.1\u003c/h2\u003e\n\u003ch2\u003eChanges since 1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers\nwhen cloning from a local repo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing\n\u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.0\u003c/h2\u003e\n\u003ch2\u003eNotable changes since 1.1.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eam\u003c/code\u003e command and \u003ccode\u003eporcelain.am()\u003c/code\u003e for applying mailbox-style email patches (\u003ccode\u003egit am\u003c/code\u003e), with state persistence for \u003ccode\u003e--continue\u003c/code\u003e, \u003ccode\u003e--skip\u003c/code\u003e, \u003ccode\u003e--abort\u003c/code\u003e, and \u003ccode\u003e--quit\u003c/code\u003e recovery (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1692\"\u003e#1692\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eapply\u003c/code\u003e command and \u003ccode\u003eporcelain.apply_patch()\u003c/code\u003e for applying unified diffs, including rename/copy detection, binary patches with Git's base85 encoding, and \u003ccode\u003e--3way\u003c/code\u003e merge fallback (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1784\"\u003e#1784\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eExpand \u003ccode\u003elog\u003c/code\u003e command options: \u003ccode\u003e--oneline\u003c/code\u003e, \u003ccode\u003e--abbrev-commit\u003c/code\u003e, \u003ccode\u003e--author\u003c/code\u003e, \u003ccode\u003e--committer\u003c/code\u003e, \u003ccode\u003e--grep\u003c/code\u003e, \u003ccode\u003e--since\u003c/code\u003e/\u003ccode\u003e--after\u003c/code\u003e, \u003ccode\u003e--until\u003c/code\u003e/\u003ccode\u003e--before\u003c/code\u003e, \u003ccode\u003e-n\u003c/code\u003e/\u003ccode\u003e--max-count\u003c/code\u003e, \u003ccode\u003e--no-merges\u003c/code\u003e, \u003ccode\u003e--merges\u003c/code\u003e, \u003ccode\u003e--stat\u003c/code\u003e, \u003ccode\u003e-p\u003c/code\u003e/\u003ccode\u003e--patch\u003c/code\u003e, \u003ccode\u003e--name-only\u003c/code\u003e, and \u003ccode\u003e--follow\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1779\"\u003e#1779\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for push options (\u003ccode\u003e-o\u003c/code\u003e/\u003ccode\u003e--push-option\u003c/code\u003e) in \u003ccode\u003epush\u003c/code\u003e, enabling AGit flow and other server-side push option workflows.\u003c/li\u003e\n\u003cli\u003eAdd missing push options: \u003ccode\u003e--all\u003c/code\u003e, \u003ccode\u003e--tags\u003c/code\u003e, \u003ccode\u003e--delete\u003c/code\u003e, \u003ccode\u003e--dry-run\u003c/code\u003e, \u003ccode\u003e--prune\u003c/code\u003e, \u003ccode\u003e--set-upstream\u003c/code\u003e, \u003ccode\u003e--follow-tags\u003c/code\u003e, and \u003ccode\u003e--mirror\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1844\"\u003e#1844\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for atomic push operations (\u003ccode\u003e--atomic\u003c/code\u003e): either all ref updates succeed or none are applied (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1781\"\u003e#1781\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eextensions.relativeworktrees\u003c/code\u003e repository extension, allowing worktrees to use relative paths (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2112\"\u003e#2112\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egc.pruneExpire\u003c/code\u003e — grace period before unreachable objects are pruned (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1859\"\u003e#1859\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.precomposeunicode\u003c/code\u003e — normalize NFD Unicode paths from macOS filesystems to NFC (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1804\"\u003e#1804\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.gitProxy\u003c/code\u003e — proxy command for \u003ccode\u003egit://\u003c/code\u003e protocol connections (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1850\"\u003e#1850\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.maxStat\u003c/code\u003e — limit stat operations when checking for unstaged changes (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1853\"\u003e#1853\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.packedGitLimit\u003c/code\u003e — cap memory used for mmapped pack files, closing LRU packs when exceeded (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1848\"\u003e#1848\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecore.deltaBaseCacheLimit\u003c/code\u003e — cap memory used for caching delta base objects; defaults to 96 MiB (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1849\"\u003e#1849\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehttp.userAgent\u003c/code\u003e — customize the User-Agent header (global and URL-specific); default is \u003ccode\u003egit/dulwich/{version}\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GPG signature verification to raise \u003ccode\u003eBadSignature\u003c/code\u003e for all GPG errors, not just \u003ccode\u003eBadSignatures\u003c/code\u003e; also detect when GPG returns no signatures.\u003c/li\u003e\n\u003cli\u003eFix client incorrectly sending \u003ccode\u003eunborn\u003c/code\u003e argument in Git protocol v2 \u003ccode\u003els-refs\u003c/code\u003e requests to servers that don't advertise \u003ccode\u003els-refs=unborn\u003c/code\u003e, preventing clones from older servers like Gerrit 3.12.2 (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2104\"\u003e#2104\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImprove error message in \u003ccode\u003eread_info_refs()\u003c/code\u003e to show the actual line content when parsing fails (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2103\"\u003e#2103\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePreserve quoted trailing whitespace in config values (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2145\"\u003e#2145\u003c/a\u003e, Christopher Toth).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e.gitignore\u003c/code\u003e parent re-include handling so a later \u003ccode\u003e!dir/\u003c/code\u003e re-include allows a subsequent file-level negation to take effect (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2141\"\u003e#2141\u003c/a\u003e, N0zoM1z0).\u003c/li\u003e\n\u003cli\u003eFix host key verification in \u003ccode\u003econtrib/paramiko_vendor.py\u003c/code\u003e by loading known hosts and rejecting unknown SSH host keys by default (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2123\"\u003e#2123\u003c/a\u003e, quart27219).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jelmer/dulwich/blob/main/NEWS\"\u003edulwich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1.2.1\t2026-04-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRecover from concurrent pack removals (e.g. a racing \u003ccode\u003egit repack\u003c/code\u003e or\n\u003ccode\u003egit gc --auto\u003c/code\u003e) instead of raising spurious \u003ccode\u003eKeyError\u003c/code\u003e /\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e. \u003ccode\u003ePack.index\u003c/code\u003e and \u003ccode\u003ePack.data\u003c/code\u003e now translate\n\u003ccode\u003eFileNotFoundError\u003c/code\u003e during lazy load into \u003ccode\u003ePackFileDisappeared\u003c/code\u003e,\nand \u003ccode\u003ePackBasedObjectStore\u003c/code\u003e evicts the stale pack and rescans the\npack directory before retrying — equivalent to git's\n\u003ccode\u003ereprepare_packed_git()\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2159\"\u003e#2159\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDerive the LFS endpoint as the remote's on-disk LFS store\n(\u003ccode\u003e\u0026lt;remote\u0026gt;/.git/lfs\u003c/code\u003e for worktrees, \u003ccode\u003e\u0026lt;remote\u0026gt;/lfs\u003c/code\u003e for bare repos)\nwhen \u003ccode\u003eremote.origin.url\u003c/code\u003e points at a local filesystem path or\n\u003ccode\u003efile://\u003c/code\u003e URL, matching git-lfs behaviour. Previously the built-in\nsmudge filter constructed an HTTP-style \u003ccode\u003e\u0026lt;remote\u0026gt;.git/info/lfs\u003c/code\u003e path\nthat did not exist on disk, leaving LFS-tracked files as pointers when\ncloning from a local repo. (Jelmer Vernooĳ)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeduplicate objects when writing a multi-pack-index. Objects present\nin multiple packs (e.g. after \u003ccode\u003egit gc\u003c/code\u003e creates a cruft pack) would\notherwise produce an OIDL chunk with repeated SHAs, causing \u003ccode\u003egit multi-pack-index verify\u003c/code\u003e to fail with \u0026quot;oid lookup out of order\u0026quot;.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2152\"\u003e#2152\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtend ignorecase and precomposeunicode support to index lookups.\n(Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1807\"\u003e#1807\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.2.0\t2026-04-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRespect the \u003ccode\u003eGIT_PROTOCOL\u003c/code\u003e environment variable when choosing the\ndefault Git wire protocol version to send. Colon-separated\n\u003ccode\u003eversion=N\u003c/code\u003e entries are parsed and applied when no explicit\n\u003ccode\u003eprotocol_version\u003c/code\u003e is passed. (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpand \u003ccode\u003elog\u003c/code\u003e command options: add \u003ccode\u003e--oneline\u003c/code\u003e, \u003ccode\u003e--abbrev-commit\u003c/code\u003e,\n\u003ccode\u003e--author\u003c/code\u003e, \u003ccode\u003e--committer\u003c/code\u003e, \u003ccode\u003e--grep\u003c/code\u003e, \u003ccode\u003e--since\u003c/code\u003e/\u003ccode\u003e--after\u003c/code\u003e,\n\u003ccode\u003e--until\u003c/code\u003e/\u003ccode\u003e--before\u003c/code\u003e, \u003ccode\u003e-n\u003c/code\u003e/\u003ccode\u003e--max-count\u003c/code\u003e, \u003ccode\u003e--no-merges\u003c/code\u003e,\n\u003ccode\u003e--merges\u003c/code\u003e, \u003ccode\u003e--stat\u003c/code\u003e, \u003ccode\u003e-p\u003c/code\u003e/\u003ccode\u003e--patch\u003c/code\u003e, \u003ccode\u003e--name-only\u003c/code\u003e,\nand \u003ccode\u003e--follow\u003c/code\u003e. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1779\"\u003e#1779\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eam\u003c/code\u003e command and \u003ccode\u003eporcelain.am()\u003c/code\u003e for applying mailbox-style\nemail patches (\u003ccode\u003egit am\u003c/code\u003e), with state persistence for\n\u003ccode\u003e--continue\u003c/code\u003e, \u003ccode\u003e--skip\u003c/code\u003e, \u003ccode\u003e--abort\u003c/code\u003e, and \u003ccode\u003e--quit\u003c/code\u003e recovery\noperations. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1692\"\u003e#1692\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for \u003ccode\u003eextensions.relativeworktrees\u003c/code\u003e repository extension,\nallowing Git worktrees to use relative paths instead of absolute paths\nwhen linking worktrees. (Jelmer Vernooĳ, \u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2112\"\u003e#2112\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for push options (\u003ccode\u003e-o\u003c/code\u003e/\u003ccode\u003e--push-option\u003c/code\u003e) in the \u003ccode\u003epush\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/57806b8a4d041cd18bf84ba8d715f4dd0bc5e200\"\u003e\u003ccode\u003e57806b8\u003c/code\u003e\u003c/a\u003e Release 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a127d330de1ef497935146bcd978211d9894787f\"\u003e\u003ccode\u003ea127d33\u003c/code\u003e\u003c/a\u003e Honor GIT_PROTOCOL env var when picking default protocol version (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/1862\"\u003e#1862\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2149\"\u003e#2149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6c1697a108757766aba71624422a93900f2a867a\"\u003e\u003ccode\u003e6c1697a\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2161\"\u003e#2161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/6685fde81a717d91d747953c2f9277939ea5ab6b\"\u003e\u003ccode\u003e6685fde\u003c/code\u003e\u003c/a\u003e lfs: use pathlib.Path.as_uri() for portable file:// URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/0d0b9f8d205eb45660d81d1efc5b7ff1fc579e61\"\u003e\u003ccode\u003e0d0b9f8\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/a0dac57db7ba8a6d9fe67d1cf4303cef306647a2\"\u003e\u003ccode\u003ea0dac57\u003c/code\u003e\u003c/a\u003e Migrate from testrepository to inquest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/cd6ebd90fc8f2f1b267db29c418c12c7ebb971a3\"\u003e\u003ccode\u003ecd6ebd9\u003c/code\u003e\u003c/a\u003e lfs: derive correct file:// LFS endpoint from local remote URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/bfaf192aaba90df54e4e7b07bba11a28cf36012b\"\u003e\u003ccode\u003ebfaf192\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/06d7afdeb87f742bdfff93563fd0acd042473b0a\"\u003e\u003ccode\u003e06d7afd\u003c/code\u003e\u003c/a\u003e Move GIT_SSH/GIT_SSH_COMMAND env lookup from client.py to cli.py (\u003ca href=\"https://redirect.github.com/dulwich/dulwich/issues/2156\"\u003e#2156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelmer/dulwich/commit/e60e0c1a4d44441d2f6edfc01ba5098d2ed24cf0\"\u003e\u003ccode\u003ee60e0c1\u003c/code\u003e\u003c/a\u003e Disable background processes to prevent issues with races\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dulwich/dulwich/compare/dulwich-1.1.0...dulwich-1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 2.1.1 to 2.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.2.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.2.0 (released 2026-04-15)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestrict DLL search paths (YSA-2026-01).\u003c/li\u003e\n\u003cli\u003eAdd support for experimental previewSign extension: \u003ca href=\"https://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\"\u003ehttps://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PSL wildcard and exception rules to RP validation.\u003c/li\u003e\n\u003cli\u003eFix: WindowsClient hmac_secret extension raising Null pointer access error.\u003c/li\u003e\n\u003cli\u003eFix: TPM attestation certificate Subject field validation.\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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eVersion 2.2.0 (released 2026-04-15)\n** Restrict DLL search paths (YSA-2026-01).\n** Add support for experimental previewSign extension:\n\u003ca href=\"https://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\"\u003ehttps://yubicolabs.github.io/webauthn-sign-extension/4/#sctn-sign-extension\u003c/a\u003e\n** Add support for PSL wildcard and exception rules to RP validation.\n** Fix: WindowsClient hmac_secret extension raising Null pointer access error.\n** Fix: TPM attestation certificate Subject field validation.\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/Yubico/python-fido2/commit/176ba47e58ae1d2837d615bfd471de45eb9af97a\"\u003e\u003ccode\u003e176ba47\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/dbacb5284de2cb145f538b1bad56ece0dfcf877e\"\u003e\u003ccode\u003edbacb52\u003c/code\u003e\u003c/a\u003e Restrict DLL loading to System32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/000e26b2174b8753735bde5df55923d8db55cc14\"\u003e\u003ccode\u003e000e26b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/4f473784676405c90c3f1b96c5416f77b6e9e7d4\"\u003e\u003ccode\u003e4f47378\u003c/code\u003e\u003c/a\u003e Bump example dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e095fc4d930eb24947075d2ab93f5cf92892e6ee\"\u003e\u003ccode\u003ee095fc4\u003c/code\u003e\u003c/a\u003e Pass ClientPin.PERMISSIONS when 0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/cd5fe1fa882fa8c7809c9bd9ac7f822919063ee7\"\u003e\u003ccode\u003ecd5fe1f\u003c/code\u003e\u003c/a\u003e Use constant_time for consistency.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/19cba78e03fe65824b4fabfa2b3a86da224b83db\"\u003e\u003ccode\u003e19cba78\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/285\"\u003e#285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/84edc052c1ce7f8ecd70cf9a2c211454c5053457\"\u003e\u003ccode\u003e84edc05\u003c/code\u003e\u003c/a\u003e Add ARKG sign extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/6430bf946987f53f67725a85fce61a1609296370\"\u003e\u003ccode\u003e6430bf9\u003c/code\u003e\u003c/a\u003e Windows: Check that pHmacSecret is populated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/efb81ef0bbb44f07cfe18071e2c9286fe69d4163\"\u003e\u003ccode\u003eefb81ef\u003c/code\u003e\u003c/a\u003e More type checking for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/2.1.1...2.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `icalendar` from 7.0.3 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/collective/icalendar/releases\"\u003eicalendar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003cp\u003eTo view the changes, please see the \u003ca href=\"https://icalendar.readthedocs.io/en/latest/changelog.html\"\u003eChangelog\u003c/a\u003e. This release can be installed from \u003ca href=\"https://pypi.org/project/icalendar/#history\"\u003ePyPI\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/collective/icalendar/blob/main/CHANGES.rst\"\u003eicalendar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-04-30)\u003c/h2\u003e\n\u003cp\u003eMinor changes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Deprecate ``icalendar.parser.escape_string`` and ``icalendar.parser.unescape_string`` for icalendar version 8. Use ``_escape_string`` and ``_unescape_string`` internally. :issue:`1011`\n- Added behavioral tests for :class:`~icalendar.cal.lazy.LazyCalendar` covering serialization round-trips, ``.todos``, ``.journals``, forward timezone references, and ``with_uid()`` substring false-positives. :issue:`1050`\n- Added edge case tests for :class:`~icalendar.prop.conference.Conference` parameter normalization covering string passthrough, empty list filtering, and ``None`` omission. :issue:`925`\n- Make icalendar an explicit editable install for clarity. :pr:`1268`\n- Do not run some tests until a pull request is approved. :pr:`1246`\n- Mark skipped CI tasks as skipped instead of running them. :issue:`1286`\n- Created an :meth:`~icalendar.prop.boolean.vBoolean.ical_value` property for the :class:`~icalendar.prop.boolean.vBoolean` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.float.vFloat.ical_value` property for the :class:`~icalendar.prop.float.vFloat` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.integer.vInt.ical_value` property for the :class:`~icalendar.prop.integer.vInt` component. :issue:`876`\n- Created an :meth:`~icalendar.prop.binary.vBinary.ical_value` property for the :class:`~icalendar.prop.binary.vBinary` component. :issue:`876`\n- Put the link check as the last documentation CI task, allowing the documentation build and Vale to run first and fail faster. :pr:`1295`\n- Extended :func:`~icalendar.timezone.tzp.TZP.localize` to support localizing both :class:`datetime.datetime` and :class:`datetime.time` objects, returning timezone-aware :class:`datetime.time` objects for the latter. :issue:`1142`\n- Add type hints to tests directory functions. :issue:`938`\n- Update to Contributor Covenant 3.0 Code of Conduct, hosted at https://pycal.org/code-of-conduct/.\n\u003cp\u003eNew features\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Added :class:`~icalendar.cal.lazy.LazyCalendar` for lazy parsing of subcomponents. :issue:`158`, :issue:`1050`\n- Updated :func:`icalendar.prop.dt.time.vTime.from_ical` to support parsing time values with TZID parameters, returning timezone-aware :class:`datetime.time` objects. :issue:`1142`\n- Added ``subcomponents`` parameter to :meth:`Component.new \u0026amp;lt;icalendar.cal.component.Component.new\u0026amp;gt;`, :meth:`Event.new \u0026amp;lt;icalendar.cal.event.Event.new\u0026amp;gt;`, :meth:`Todo.new \u0026amp;lt;icalendar.cal.todo.Todo.new\u0026amp;gt;`, and :meth:`Availability.new \u0026amp;lt;icalendar.cal.availability.Availability.new\u0026amp;gt;`. :issue:`1065`\n- Switch to uv for development. :issue:`1102`\n\nBug fixes\n~~~~~~~~~\n\n- Allow lenient parsing of content lines with optional whitespace around property and parameter delimiters (for example, ``REFRESH - INTERVAL; VALUE = DURATION:PT48H``) when parsing calendars with ``strict=False``. :issue:`351`\n- X-properties with a ``VALUE`` parameter are now parsed using the correct type instead of falling back to :class:`~icalendar.prop.unkown.vUnknown`. :issue:`1238`\n- Test that the ``DURATION`` property catches :class:`datetime.timedelta` objects without vProperty wrappers. :issue:`884`\n- Fixed :func:`~icalendar.attr.get_end_property` to avoid allowing the creating of VEVENT components with negative durations. Only VTODO components are allowed to have negative durations. :issue:`999`\n- GitHub Actions: conditional tests now show as \u0026amp;quot;skipped\u0026amp;quot; instead of \u0026amp;quot;pending\u0026amp;quot;. :issue:`1264`\n- Fixed :meth:`Component.__eq__ \u0026amp;lt;icalendar.cal.component.Component.__eq__\u0026amp;gt;` method not being commutative when comparing subcomponents. :issue:`1224`\n- Verified that the ``VALUE`` parameter of jCal components is used for the type of the component property. :issue:`1237`\n- Fix :func:`~icalendar.parser.string.escape_char` handling of ``bytes`` input by converting with :func:`icalendar.parser_tools.to_unicode` before escaping. :issue:`1226`\n- Fixed ``RecursionError`` in ``walk()``, ``property_items()``, and ``to_ical()`` by using iterative implementations for component traversal and property extraction. :pr:`1348`\n\nDocumentation\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;Convert docstring of :func:\u0026lt;code\u0026gt;~icalendar.param.string_parameter\u0026lt;/code\u0026gt; to Google style. :issue:\u0026lt;code\u0026gt;1072\u0026lt;/code\u0026gt;, :pr:\u0026lt;code\u0026gt;1316\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Run \u0026lt;code\u0026gt;sphinx-build\u0026lt;/code\u0026gt; with \u0026lt;code\u0026gt;-W\u0026lt;/code\u0026gt; to turn warnings into errors. :issue:\u0026lt;code\u0026gt;1306\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Added \u0026lt;code\u0026gt;sphinx-llms-txt \u0026amp;lt;https://sphinx-llms-txt.readthedocs.io/en/stable/\u0026amp;gt;\u0026lt;/code\u0026gt;_ extension to generate :file:\u0026lt;code\u0026gt;llms.txt\u0026lt;/code\u0026gt; and :file:\u0026lt;code\u0026gt;llms-full.txt\u0026lt;/code\u0026gt; files for AI/LLM documentation consumption. :issue:\u0026lt;code\u0026gt;1302\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Fixed CI Vale check reporting and resolved Vale errors. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Include :file:\u0026lt;code\u0026gt;Makefile\u0026lt;/code\u0026gt; in documentation workflow path filters so documentation CI runs when Makefile logic changes, and keep Vale failures visible in CI output. :issue:\u0026lt;code\u0026gt;1277\u0026lt;/code\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;!-- raw HTML omitted --\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;p\u0026gt;... (truncated)\u0026lt;/p\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1300b76fb3fe40d987cc3715735c026b3c1a2191\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1300b76\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into 7.x\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/255e6b841331e2d5cf2901402e08ab788899d465\u0026quot;\u0026gt;\u0026lt;code\u0026gt;255e6b8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; add 7.x to run the tests\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/fc8a4f5674eaa05bf3546b296f166583f670561a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;fc8a4f5\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; disable the version switcher on the 7.x branch\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/f5aa35d2ff6d106f5a7b286970b65b5f9d9211b4\u0026quot;\u0026gt;\u0026lt;code\u0026gt;f5aa35d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; version 7.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/b4ffb8345deea76e4cca72689907ed2f8488e7de\u0026quot;\u0026gt;\u0026lt;code\u0026gt;b4ffb83\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1348\u0026quot;\u0026gt;#1348\u0026lt;/a\u0026gt; from uwezkhan/fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1d6d18d357335367d72f4628b7158dd4800caf39\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1d6d18d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/05a34d48d3223b2780c9afffd0cdbab9d5c50ffd\u0026quot;\u0026gt;\u0026lt;code\u0026gt;05a34d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge pull request \u0026lt;a href=\u0026quot;https://redirect.github.com/collective/icalendar/issues/1346\u0026quot;\u0026gt;#1346\u0026lt;/a\u0026gt; from uwezkhan/fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/a4829d4d43b29e430b97ab66313f6357edd3742d\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a4829d4\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/property-items-recursion\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/66579fbf8fb4aeb6bf1ded0cfa353ba3d500e35a\u0026quot;\u0026gt;\u0026lt;code\u0026gt;66579fb\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; fix formatting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/commit/1f55c2035315e53b8d9a6eeacf1aee046d794fd3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1f55c20\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Merge branch 'main' into fix/deep-component-walk-dos\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/collective/icalendar/compare/v7.0.3...v7.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `idna` from 3.11 to 3.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\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/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-metadata` from 8.7.1 to 9.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_metadata/blob/main/NEWS.rst\"\u003eimportlib-metadata's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev9.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eMetadataNotFound\u003c/code\u003e (subclass of \u003ccode\u003eFileNotFoundError\u003c/code\u003e) and updated \u003ccode\u003eDistribution.metadata\u003c/code\u003e/\u003ccode\u003emetadata()\u003c/code\u003e to raise it when the metadata files are missing instead of returning \u003ccode\u003eNone\u003c/code\u003e\u003ccode\u003epython/cpython#143387\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epython/cpython#110937\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/cpython/issues/140141\"\u003epython/cpython#140141\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/cpython/issues/143658\"\u003epython/cpython#143658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev8.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved Python 3.9 compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a9f883fef337c667a81a987bc0cbc0dbb43b2bfe\"\u003e\u003ccode\u003ea9f883f\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/9b0dfdfe2e187dca6644007570189aadc6c97a34\"\u003e\u003ccode\u003e9b0dfdf\u003c/code\u003e\u003c/a\u003e Raise an exception when no metadata file is found (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0f2229ca84f20be2ceaaa4c62a276fa9b003f5bc\"\u003e\u003ccode\u003e0f2229c\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into feature/no-metadata-exception\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2f4088e490a73ac7f39b86214d2da16d2eb1ff39\"\u003e\u003ccode\u003e2f4088e\u003c/code\u003e\u003c/a\u003e Remove news fragments about internal details.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/0ac27203f8044daf634c22f385838122a0707449\"\u003e\u003ccode\u003e0ac2720\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/a5c2154835facb4a9d0a6f5b3aac1f3d1ff86170\"\u003e\u003ccode\u003ea5c2154\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/e66e22634f7522e7778b66e8a8b19782a11d4943\"\u003e\u003ccode\u003ee66e226\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.9 (\u003ca href=\"https://redirect.github.com/python/importlib_metadata/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/6027933ae96c9e51dd0b7ce392cb30f6fcae1940\"\u003e\u003ccode\u003e6027933\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/b89388a53bf857127e0a6860dfcfe2cd69a79ab8\"\u003e\u003ccode\u003eb89388a\u003c/code\u003e\u003c/a\u003e Import os_helper directly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_metadata/commit/2dcb761d940b0115b786ab3b6f336af7d94630f4\"\u003e\u003ccode\u003e2dcb761\u003c/code\u003e\u003c/a\u003e Add uniform exclusions for test.support.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.0 (2026-04-17)\u003c/h1\u003e\n\u003cp\u003eThis release fixes a possible external entity injection (XXE) vulnerability in\n\u003ccode\u003eiterparse()\u003c/code\u003e and the \u003ccode\u003eETCompatXMLParser\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#486: The HTML ARIA accessibility attributes were added to the set of safe attributes\nin \u003ccode\u003elxml.html.defs\u003c/code\u003e.  This allows \u003ccode\u003elxml_html_clean\u003c/code\u003e to pass them through.\nPatch by oomsveta.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default chunk size for reading from file-likes in \u003ccode\u003eiterparse()\u003c/code\u003e is now configurable\nwith a new \u003ccode\u003echunk_size\u003c/code\u003e argument.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2146291: The \u003ccode\u003eresolve_entities\u003c/code\u003e option was still set to \u003ccode\u003eTrue\u003c/code\u003e for\n\u003ccode\u003eiterparse\u003c/code\u003e and \u003ccode\u003eETCompatXMLParser\u003c/code\u003e, allowing for external entity injection (XXE)\nwhen using these parsers without setting this option explicitly.\nThe default was now changed to \u003ccode\u003e'internal'\u003c/code\u003e only (as for the normal XML and HTML parsers\nsince lxml 5.0).\nIssue found by Sihao Qiu as CVE-2026-41066.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.0.4 (2026-04-12)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2148019: Spurious MemoryError during namespace cleanup.\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/lxml/lxml/commit/43722...\n\n_Description has been truncated_","html_url":"https://github.com/invenhost/InvenTree/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/invenhost%2FInvenTree/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"}},{"old_version":"4.4.0","new_version":"4.5.0","update_type":"minor","path":null,"pr_created_at":"2026-05-07T23:55:13.000Z","version_change":"4.4.0 → 4.5.0","issue":{"uuid":"4402708875","node_id":"PR_kwDOSQXwv87ZV9EK","number":39,"state":"closed","title":"chore(deps): bump the uv-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-14T23:53:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-07T23:55:13.000Z","updated_at":"2026-05-14T23:53:42.000Z","time_to_close":604707,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv-dependencies","update_count":23,"packages":[{"name":"apprise","old_version":"1.9.9","new_version":"1.10.0","repository_url":"https://github.com/caronc/apprise"},{"name":"cryptography","old_version":"46.0.7","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"cyclopts","old_version":"4.10.2","new_version":"4.11.2","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"cachetools","old_version":"7.0.6","new_version":"7.1.1","repository_url":"https://github.com/tkem/cachetools"},{"name":"coolname","old_version":"4.2.0","new_version":"5.0.0","repository_url":"https://github.com/alexanderlukanin13/coolname"},{"name":"fastapi","old_version":"0.136.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fsspec","old_version":"2026.3.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"orjson","old_version":"3.11.8","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.1","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic","old_version":"2.13.3","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"uvicorn","old_version":"0.45.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydocket","old_version":"0.19.2","new_version":"0.20.1","repository_url":"https://github.com/chrisguidry/docket"},{"name":"uv","old_version":"0.11.7","new_version":"0.11.11","repository_url":"https://github.com/astral-sh/uv"},{"name":"prefect-dbt","old_version":"0.7.23","new_version":"0.7.24","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"prefect-redis","old_version":"0.2.10","new_version":"0.2.11","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"moto","old_version":"5.1.22","new_version":"5.2.0","repository_url":"https://github.com/getmoto/moto"},{"name":"pyright","old_version":"1.1.408","new_version":"1.1.409","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"virtualenv","old_version":"21.2.4","new_version":"21.3.1","repository_url":"https://github.com/pypa/virtualenv"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-cachetools","old_version":"6.2.0.20260408","new_version":"7.0.0.20260503","repository_url":"https://github.com/python/typeshed"},{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 22 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [apprise](https://github.com/caronc/apprise) | `1.9.9` | `1.10.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `48.0.0` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.10.2` | `4.11.2` |\n| [cachetools](https://github.com/tkem/cachetools) | `7.0.6` | `7.1.1` |\n| [coolname](https://github.com/alexanderlukanin13/coolname) | `4.2.0` | `5.0.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.136.0` | `0.136.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.3.0` | `2026.4.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.8` | `3.11.9` |\n| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.45.0` | `0.46.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.19.2` | `0.20.1` |\n| [uv](https://github.com/astral-sh/uv) | `0.11.7` | `0.11.11` |\n| [prefect-dbt](https://github.com/PrefectHQ/prefect) | `0.7.23` | `0.7.24` |\n| [prefect-redis](https://github.com/PrefectHQ/prefect) | `0.2.10` | `0.2.11` |\n| [moto](https://github.com/getmoto/moto) | `5.1.22` | `5.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.408` | `1.1.409` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.4` | `21.3.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.12` |\n| [types-cachetools](https://github.com/python/typeshed) | `6.2.0.20260408` | `7.0.0.20260503` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.4.0` | `4.5.0` |\n\n\nUpdates `apprise` from 1.9.9 to 1.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/caronc/apprise/releases\"\u003eapprise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThe big wow factor of this release would be the huge effort put into Matrix E2EE built into Apprise without adding overhead to the plugin itself. Huge props to those that helped out.  Other than that, a few more services have been added (137 supported now :rocket: ).\u003c/p\u003e\n\u003cp\u003eThe official documentation website (\u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) got a nice cleanup; the Service listings are now searchable; some nice tweaks to the URL Builder as well.\u003c/p\u003e\n\u003ch3\u003e:mega: New Notification Services:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOpsgenie functionality ported to jira:// in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1273\"\u003ecaronc/apprise#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEvolution API (WhatsApp) notification plugin by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1579\"\u003ecaronc/apprise#1579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded blink(1) support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1578\"\u003ecaronc/apprise#1578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExotel Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/782\"\u003ecaronc/apprise#782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Octopush Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/622\"\u003ecaronc/apprise#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Postmark support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1590\"\u003ecaronc/apprise#1590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:lady_beetle:  Bugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003entfy:// tags= changed to xtags= in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1555\"\u003ecaronc/apprise#1555\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003ethis allows tags to work again correctly for those dependant on it; previously \u003ccode\u003etags=\u003c/code\u003e conflicted with \u003ccode\u003etags=\u003c/code\u003e in Apprise)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eXMPP server hostname can differentiate to what is found in JID in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1560\"\u003ecaronc/apprise#1560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed issue with mailto:// when using yahoo.com in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1561\"\u003ecaronc/apprise#1561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFluxer time dependant unittest assertion optimized for slower systems in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1566\"\u003ecaronc/apprise#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed templating references impacting url generation (on \u003ca href=\"https://appriseit.com\"\u003ehttps://appriseit.com\u003c/a\u003e) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1582\"\u003ecaronc/apprise#1582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed KeyError Exception thrown when certain emoji's specified in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1592\"\u003ecaronc/apprise#1592\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bulb: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate the Dot. (Quote/0) plugin from API v1 to API v2 by \u003ca href=\"https://github.com/HerbertGao\"\u003e\u003ccode\u003e@​HerbertGao\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1512\"\u003ecaronc/apprise#1512\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Dot. plugin to better align with Apprise in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1588\"\u003ecaronc/apprise#1588\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eURLs that can not be loaded are more verbose for the reasoning in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1568\"\u003ecaronc/apprise#1568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebex wxteams:// Bot API Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1567\"\u003ecaronc/apprise#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixes parse_url() -\u0026gt; url() -\u0026gt; parse_url() inconsistency in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1572\"\u003ecaronc/apprise#1572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushover Delivery Group Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1563\"\u003ecaronc/apprise#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix token template cleanup in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1573\"\u003ecaronc/apprise#1573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efcm:// add apns-push-type header for reliable iOS delivery by \u003ca href=\"https://github.com/AlbertoLanaro\"\u003e\u003ccode\u003e@​AlbertoLanaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1577\"\u003ecaronc/apprise#1577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHome Assistant \u0026quot;Service' Notification Support Added (extension to what was already there) in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1294\"\u003ecaronc/apprise#1294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded attachment support to Mattermost in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1583\"\u003ecaronc/apprise#1583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e:fire: Matrix E2EE Support in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1574\"\u003ecaronc/apprise#1574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMatrix Hookshot support added in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1586\"\u003ecaronc/apprise#1586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMastodon supports hashtag/user references in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1587\"\u003ecaronc/apprise#1587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePushPlus refactored to support more options in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1589\"\u003ecaronc/apprise#1589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInproved azure:// error handling and message responses in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1499\"\u003ecaronc/apprise#1499\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:heart: Life-Cycle Support\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate LoC badge by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1554\"\u003ecaronc/apprise#1554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemory-Optimized Plugin Management in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1557\"\u003ecaronc/apprise#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRuff linter configuration updated and applied to entire codebase in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1562\"\u003ecaronc/apprise#1562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(pt_BR): add Brazilian Portuguese translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1580\"\u003ecaronc/apprise#1580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ei18n(es): add Spanish translation by \u003ca href=\"https://github.com/opastorello\"\u003e\u003ccode\u003e@​opastorello\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/caronc/apprise/pull/1581\"\u003ecaronc/apprise#1581\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eApprise is available \u003ca href=\"https://pypi.org/project/apprise/\"\u003eon PyPI\u003c/a\u003e through \u003cem\u003epip\u003c/em\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/caronc/apprise/commit/343c960969477b60df580f70294ce966bb4b0ce2\"\u003e\u003ccode\u003e343c960\u003c/code\u003e\u003c/a\u003e bummped version to v1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/67b523077173bcf8c717b0e567b7d2e7251d21e1\"\u003e\u003ccode\u003e67b5230\u003c/code\u003e\u003c/a\u003e Inproved azure:// error handling and message responses (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1499\"\u003e#1499\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/755f17479ff20fd9473e1aa15ab1b190920041c3\"\u003e\u003ccode\u003e755f174\u003c/code\u003e\u003c/a\u003e bugfix: KeyError Exception thrown when certain emoji's specified (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1592\"\u003e#1592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/a7bc56dd81ea60b1c9f59775d1e005e560a716b9\"\u003e\u003ccode\u003ea7bc56d\u003c/code\u003e\u003c/a\u003e PushPlus refactored to support more options (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1589\"\u003e#1589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/9d0056b9cd4771bc752d4ff2936a1e4977e3fa81\"\u003e\u003ccode\u003e9d0056b\u003c/code\u003e\u003c/a\u003e Added Postmark support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1590\"\u003e#1590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0617ef7ac63cc6f1e850913c055e280043360358\"\u003e\u003ccode\u003e0617ef7\u003c/code\u003e\u003c/a\u003e Updated Dot. plugin to better align with Apprise standards (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1588\"\u003e#1588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/0fbe0946869fab49c330d6fd5fb89ea58cb9b6db\"\u003e\u003ccode\u003e0fbe094\u003c/code\u003e\u003c/a\u003e Added Octopush Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/58d0f1e00a5e4daac928372d1b49a2886e7589f2\"\u003e\u003ccode\u003e58d0f1e\u003c/code\u003e\u003c/a\u003e Exotel Support (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/2a8d62fad5dc1930d8f14e0775341692ff0c5aa5\"\u003e\u003ccode\u003e2a8d62f\u003c/code\u003e\u003c/a\u003e Mastodon supports hashtag/user references (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1587\"\u003e#1587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/caronc/apprise/commit/1382633788004b515240c0f17c5b0cfe0f111554\"\u003e\u003ccode\u003e1382633\u003c/code\u003e\u003c/a\u003e Matrix Hookshot support added (\u003ca href=\"https://redirect.github.com/caronc/apprise/issues/1586\"\u003e#1586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/caronc/apprise/compare/v1.9.9...v1.10.0\"\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.7 to 48.0.0\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\u003e48.0.0 - 2026-05-04\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **BACKWARDS INCOMPATIBLE:** Support for Python 3.8 has been removed.\n  ``cryptography`` now requires Python 3.9 or later.\n* **BACKWARDS INCOMPATIBLE:** Loading an X.509 CRL whose inner\n  ``TBSCertList.signature`` algorithm does not match the outer\n  ``signatureAlgorithm`` now raises ``ValueError``. Previously, such CRLs\n  were parsed successfully and only rejected during signature validation.\n* Added support for :doc:`/hazmat/primitives/asymmetric/mlkem` and\n  :doc:`/hazmat/primitives/asymmetric/mldsa` when using OpenSSL 3.5.0 or\n  later, in addition to the existing AWS-LC and BoringSSL support. This means\n  post-quantum algorithms are now available to users of our wheels.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e Going forward, we do not guarantee that all functionality\u003cbr /\u003e\nin \u003ccode\u003ecryptography\u003c/code\u003e will be available when building against\u003cbr /\u003e\nOpenSSL. See :doc:\u003ccode\u003e/statements/state-of-openssl\u003c/code\u003e for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v47-0-0:\u003c/p\u003e\n\u003cp\u003e47.0.0 - 2026-04-24\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.8 is deprecated and will be removed in the next\n\u003ccode\u003ecryptography\u003c/code\u003e release.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for binary elliptic curves\n(\u003ccode\u003eSECT*\u003c/code\u003e classes) has been removed. These curves are rarely used and\nhave additional security considerations that make them undesirable.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for OpenSSL 1.1.x has been removed.\nOpenSSL 3.0.0 or later is now required. LibreSSL, BoringSSL, and AWS-LC\ncontinue to be supported.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Dropped support for LibreSSL \u0026lt; 4.1.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Loading keys with unsupported algorithms or\nkeys with unsupported explicit curve encodings now raises\n:class:\u003ccode\u003e~cryptography.exceptions.UnsupportedAlgorithm\u003c/code\u003e instead of\n\u003ccode\u003eValueError\u003c/code\u003e. This change affects\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_private_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_pem_public_key\u003c/code\u003e,\n:func:\u003ccode\u003e~cryptography.hazmat.primitives.serialization.load_der_public_key\u003c/code\u003e,\nand :meth:\u003ccode\u003e~cryptography.x509.Certificate.public_key\u003c/code\u003e when called on\ncertificates with unsupported public key algorithms.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e When parsing elliptic curve private keys, we now\nreject keys that incorrectly encode a private key of the wrong length because\nsuch keys are impossible to process in a constant-time manner. We do not\nbelieve keys with this problem are in wide use, however we may revert this\nchange based on the feedback we receive.\u003c/li\u003e\n\u003cli\u003eDeprecated passing 64-bit (8-byte) and 128-bit (16-byte) keys to\n:class:\u003ccode\u003e~cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES\u003c/code\u003e. In a\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/pyca/cryptography/commit/8e03e30e3aae01632a697e903e3593c924f0139d\"\u003e\u003ccode\u003e8e03e30\u003c/code\u003e\u003c/a\u003e bump for 48.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14796\"\u003e#14796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/295e0d254ef31ab864730aa41312ec355416ee71\"\u003e\u003ccode\u003e295e0d2\u003c/code\u003e\u003c/a\u003e Add AGENTS.md with CLAUDE.md symlink (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14794\"\u003e#14794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/104a2de19e268a433e6da92be9cb872dcf0003c8\"\u003e\u003ccode\u003e104a2de\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14793\"\u003e#14793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67ec1e51988195e17993d2edef5258b27509b926\"\u003e\u003ccode\u003e67ec1e5\u003c/code\u003e\u003c/a\u003e call check_length early on AesSiv::encrypt (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14792\"\u003e#14792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/b2da57a0d9e4bfd2b95364299091a18f74127b26\"\u003e\u003ccode\u003eb2da57a\u003c/code\u003e\u003c/a\u003e changelog for mldsa/mlkem for openssl (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14791\"\u003e#14791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3cf44adee25c368d4a136e072fa9f80465d91eb0\"\u003e\u003ccode\u003e3cf44ad\u003c/code\u003e\u003c/a\u003e ML-KEM OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14781\"\u003e#14781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e31639666766f846fbab2c605879db0fa64fe83\"\u003e\u003ccode\u003e2e31639\u003c/code\u003e\u003c/a\u003e ML-DSA OpenSSL support (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14773\"\u003e#14773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/5affe5a286a986fdf512c4a5cb280d28a96c10e3\"\u003e\u003ccode\u003e5affe5a\u003c/code\u003e\u003c/a\u003e fix rust nightly clippy (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14790\"\u003e#14790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2e73ca448eaf64b6f0d4ffbb794cf96170cef5ec\"\u003e\u003ccode\u003e2e73ca4\u003c/code\u003e\u003c/a\u003e bump rust-openssl dep and update EcPoint::mul_generator to mul_generator2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/82ebd3b9f49d49ad5fd8b4b1f1dd02487b6e1466\"\u003e\u003ccode\u003e82ebd3b\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14785\"\u003e#14785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.7...48.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytz` from 2026.1.post1 to 2026.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/45957c55be9dbf013b636aeb7d22dc7bec81a9f4\"\u003e\u003ccode\u003e45957c5\u003c/code\u003e\u003c/a\u003e Bump github actions/checkout to \u003ca href=\"https://github.com/v6\"\u003e\u003ccode\u003e@​v6\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/8e927c67c98ccde3624642f2f32cd6c5208a5161\"\u003e\u003ccode\u003e8e927c6\u003c/code\u003e\u003c/a\u003e Bump version numbers to 2026.2 (IANA 2026b)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/6f08adec7bcb382e78afedb660f94f38a093fddf\"\u003e\u003ccode\u003e6f08ade\u003c/code\u003e\u003c/a\u003e IANA 2026b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/edbfbdf8f708657ce5b9fee32e2f8eaa8647359a\"\u003e\u003ccode\u003eedbfbdf\u003c/code\u003e\u003c/a\u003e Squashed 'tz/' changes from dd6be6d155..8be0d5483d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/a148b0390a42ea9a95ef7f6d8c346307405708d5\"\u003e\u003ccode\u003ea148b03\u003c/code\u003e\u003c/a\u003e Fix typo in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stub42/pytz/commit/b841195f5df79455ee3aa9ec3d8749af835dab48\"\u003e\u003ccode\u003eb841195\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/stub42/pytz/compare/release_2026.1.post1...release_2026.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cyclopts` from 4.10.2 to 4.11.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/BrianPugh/cyclopts/releases\"\u003ecyclopts's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.2\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_should_attempt_json_list\u003c/code\u003e for detecting \u003ccode\u003elist[str] | None\u003c/code\u003e and Annotated annotations by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/800\"\u003eBrianPugh/cyclopts#800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.1...v4.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude meta-apps when assembling usage string by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/793\"\u003eBrianPugh/cyclopts#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing python3.14 classifier by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/796\"\u003eBrianPugh/cyclopts#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003cstrong\u003euntyped\u003c/strong\u003e boolean negative name derivation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/798\"\u003eBrianPugh/cyclopts#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious completion fixes by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/794\"\u003eBrianPugh/cyclopts#794\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.11.0...v4.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eusage_name\u003c/code\u003e override for configuring docs creation by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/791\"\u003eBrianPugh/cyclopts#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded granular help for \u003ccode\u003edict[str, dataclass-like]\u003c/code\u003e params by \u003ca href=\"https://github.com/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hints/completion for attrs converter functions. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/784\"\u003eBrianPugh/cyclopts#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix token_count for discriminated unions by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/789\"\u003eBrianPugh/cyclopts#789\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc Internal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eprefer using consistent \u003ccode\u003eis_annotated\u003c/code\u003e over get_origin by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/792\"\u003eBrianPugh/cyclopts#792\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/wrongbad\"\u003e\u003ccode\u003e@​wrongbad\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/pull/787\"\u003eBrianPugh/cyclopts#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\"\u003ehttps://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/921b1fa36afa2faca35f5e54d366f27816bed407\"\u003e\u003ccode\u003e921b1fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/800\"\u003e#800\u003c/a\u003e from BrianPugh/json-list-detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f37a3fa84d70a2df6481296199777bd048cdd8b0\"\u003e\u003ccode\u003ef37a3fa\u003c/code\u003e\u003c/a\u003e use self.hint instead of self.field_info.annotation in _should_attempt_json_list\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/f54568a310a0f8fb69bf570cfc82f65320f0f005\"\u003e\u003ccode\u003ef54568a\u003c/code\u003e\u003c/a\u003e replicate bug described by \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/799\"\u003e#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/9e0806f2c1cf4a8ba1f78f4a5c6c3cee54d81d41\"\u003e\u003ccode\u003e9e0806f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/794\"\u003e#794\u003c/a\u003e from BrianPugh/better-completion-harness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/ad4f7e2e1b50403069f6e5136bce6ead4a285565\"\u003e\u003ccode\u003ead4f7e2\u003c/code\u003e\u003c/a\u003e more tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/5d5259f0c275456c313f8266d9ea85545d4f7573\"\u003e\u003ccode\u003e5d5259f\u003c/code\u003e\u003c/a\u003e fix: don't escape option/command names in single-quoted bash arrays\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b0dc417b95629d52321ce32aa7b2aee6377135f0\"\u003e\u003ccode\u003eb0dc417\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/798\"\u003e#798\u003c/a\u003e from BrianPugh/untyped-boolean-negative\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/b6e8a2c47220ab2c5a5ae725ca7f0f3d13c0b2c5\"\u003e\u003ccode\u003eb6e8a2c\u003c/code\u003e\u003c/a\u003e Treat Any-annotated bool default as flag for negative-name generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/dc38699b7656299de5ff0d3466148cb6d8589078\"\u003e\u003ccode\u003edc38699\u003c/code\u003e\u003c/a\u003e infer boolean-type from default value when determining negative-names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh/cyclopts/commit/14d8fad42e205298a771c921a48ef7835ba962a4\"\u003e\u003ccode\u003e14d8fad\u003c/code\u003e\u003c/a\u003e Add a test that replicates \u003ca href=\"https://redirect.github.com/BrianPugh/cyclopts/issues/797\"\u003e#797\u003c/a\u003e (missing negative flag for unannotated boolea...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/BrianPugh/cyclopts/compare/v4.10.2...v4.11.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 7.0.6 to 7.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.1.1 (2026-05-03)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eVarious type stub improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev7.1.0 (2026-05-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type stubs based on the work of the good people at \u003ccode\u003etypeshed \u0026lt;https://github.com/python/typeshed/tree/main/stubs/cachetools/\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate unit tests.\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/tkem/cachetools/commit/2e6a2d21c44e83b56c06cc9dd738e5b7a097ce6a\"\u003e\u003ccode\u003e2e6a2d2\u003c/code\u003e\u003c/a\u003e Release v7.1.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/cc065582849e3658d2c92aac0f5c2b6271ed077f\"\u003e\u003ccode\u003ecc06558\u003c/code\u003e\u003c/a\u003e Minor typing improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/193dd62d9be4e1099039e8fba59a1fe50e8f4d08\"\u003e\u003ccode\u003e193dd62\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/393\"\u003e#393\u003c/a\u003e: Improve ambiguous overloads for decorators.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/1ea3422e058ef8b6b7dc15beb9d44d8f7c195a62\"\u003e\u003ccode\u003e1ea3422\u003c/code\u003e\u003c/a\u003e Bump release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/d9874465a6ab6f9d1d56cef91370f9c237a7eca6\"\u003e\u003ccode\u003ed987446\u003c/code\u003e\u003c/a\u003e Release v7.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/3d79e80a4a54892d1552cd17da8e27920c1918d8\"\u003e\u003ccode\u003e3d79e80\u003c/code\u003e\u003c/a\u003e Update Copilot Instructions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/83fe6bc78d0155a0036dda8a8eb1a2ddb8f26c60\"\u003e\u003ccode\u003e83fe6bc\u003c/code\u003e\u003c/a\u003e Add tox pyright check.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bd3fbc49212eb948e08e9c478e5901f1293fd1f4\"\u003e\u003ccode\u003ebd3fbc4\u003c/code\u003e\u003c/a\u003e Improve typing support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/09dd6fec4b1b2339451ab26d1ca3c7a049b8c38c\"\u003e\u003ccode\u003e09dd6fe\u003c/code\u003e\u003c/a\u003e Improve original type stubs from typeshed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/873c7013ea92b16f2f24a6001e625fabfdf951a5\"\u003e\u003ccode\u003e873c701\u003c/code\u003e\u003c/a\u003e Add typeshed typings.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v7.0.6...v7.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coolname` from 4.2.0 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexanderlukanin13/coolname/blob/master/HISTORY.rst\"\u003ecoolname's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0 (2026-04-22)\u003c/h2\u003e\n\u003cp\u003eThis major release has new features and significant internal changes, but it is compatible with 4.x in any normal usage\nas described in documentation, and you can upgrade from 4.x with minimal unit test coverage.\u003c/p\u003e\n\u003cp\u003eThere are implementation changes that \u003cem\u003etheoretically\u003c/em\u003e can break user code in undocumented scenarios.\nEven if it breaks, most likely, it will take a minute to fix.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's new in the default generator:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eComplete typing support, tested with mypy \u003ccode\u003estrict = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a few more words, and fixed one spelling mistake.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. collapse:: Boring technical details\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* :py:class:`RandomGenerator` and global methods like :py:func:`generate_slug` now live in the top-level\n  ``coolname`` namespace.\n  It won't affect your code if you've been importing directly from ``coolname`` as per documentation.\n\u003cp\u003eBasically, instead of this:\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; from coolname import generate_slug, RandomGenerator\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.impl.RandomGenerator object at 0x7a7cb248d6a0\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.impl.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou will see this (notice no \u003ccode\u003eimpl\u003c/code\u003e):\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; generate_slug\n\u0026amp;lt;bound method RandomGenerator.generate_slug of \u0026amp;lt;coolname.RandomGenerator object at 0x75038bacde80\u0026amp;gt;\u0026amp;gt;\n\u0026amp;gt;\u0026amp;gt;\u0026amp;gt; RandomGenerator\n\u0026amp;lt;class 'coolname.RandomGenerator'\u0026amp;gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIn custom generators:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDefault parameter value changed: \u003ccode\u003eensure_unique=True\u003c/code\u003e. Custom generators can forget about it\nand still generate sequences without repeating words.\nConsider also using \u003ccode\u003eensure_unique_prefix\u003c/code\u003e (disabled by default).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:doc:\u003ccode\u003eNew parameters \u0026lt;parameters-table\u0026gt;\u003c/code\u003e for advanced words/phrases lists:\n\u003ccode\u003estrip_whitespace\u003c/code\u003e, \u003ccode\u003eallow_whitespace\u003c/code\u003e, \u003ccode\u003eseparator\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhat is considered a valid word? It's now controlled by \u003ccode\u003eword_regex\u003c/code\u003e parameter, \u003ccode\u003e\\w+\u003c/code\u003e by default.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/7d450781390fc2193b676a339e34adb697f1febb\"\u003e\u003ccode\u003e7d45078\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/13541d9e8e768751898732e51188defb5524917d\"\u003e\u003ccode\u003e13541d9\u003c/code\u003e\u003c/a\u003e docs: autodoc fix - build package first\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/8015c5efc0f209a685be2ff6b5bc5f82c5594996\"\u003e\u003ccode\u003e8015c5e\u003c/code\u003e\u003c/a\u003e Merge branch 'dev'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/659fad71955a169543a76acb5188af68ea1a8b95\"\u003e\u003ccode\u003e659fad7\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/3a1d21b788f9276b2ff8421b1a7f20e90df25fa8\"\u003e\u003ccode\u003e3a1d21b\u003c/code\u003e\u003c/a\u003e docs: HISTORY\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/a351596508e19f178ce5513f9029f2cd662d8338\"\u003e\u003ccode\u003ea351596\u003c/code\u003e\u003c/a\u003e feat: number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/9e04baba3f69c1465ad8e85c384f58af5904b309\"\u003e\u003ccode\u003e9e04bab\u003c/code\u003e\u003c/a\u003e work in progress\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/4f0b8f98a5cc5937f27eefcde8b8e6acc3f988c2\"\u003e\u003ccode\u003e4f0b8f9\u003c/code\u003e\u003c/a\u003e improved: PhraseSplitter clearer error messages + tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e9cceba9fc104145588447f0e9a07d5b223914ab\"\u003e\u003ccode\u003ee9cceba\u003c/code\u003e\u003c/a\u003e refactor: use pathlib.Path in coolname.loader; updated tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexanderlukanin13/coolname/commit/e6484ed0c9d1c6cd1258f05218f2a1dae0cbabf6\"\u003e\u003ccode\u003ee6484ed\u003c/code\u003e\u003c/a\u003e Bump pytest from 7.4.4 to 9.0.3 in /requirements\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexanderlukanin13/coolname/compare/4.2.0...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.136.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\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/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.136.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 `fsspec` from 2026.3.0 to 2026.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8fdedd1fd17be354f75f0cec1f973d93416c704b\"\u003e\u003ccode\u003e8fdedd1\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/8205d0d1afecb64f34565ebeb073b7f1959a869d\"\u003e\u003ccode\u003e8205d0d\u003c/code\u003e\u003c/a\u003e Release (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/50bfba22200077fa602038857e19d58cc2541db5\"\u003e\u003ccode\u003e50bfba2\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of \u003ca href=\"https://github.com/fsspec/filesystem_spec\"\u003ehttps://github.com/fsspec/filesystem_spec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/f58bc851213ab3a87b2d26c01c9d26b291b0e1d3\"\u003e\u003ccode\u003ef58bc85\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/c6c7b40b7794c6e554d9dcae7bf4930bba67e403\"\u003e\u003ccode\u003ec6c7b40\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/3bc67f85c3b67c5adef11af35761fd839de306fb\"\u003e\u003ccode\u003e3bc67f8\u003c/code\u003e\u003c/a\u003e DEP: de-duplicate and sort optional dependencies (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/0b290bf1336bb15d4327afcdf743d9a17b5ea762\"\u003e\u003ccode\u003e0b290bf\u003c/code\u003e\u003c/a\u003e docs: add URL handling note to HTTPFileSystem class docstring (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/b33a2d6c3b6912c645d9a315791f41e74bff4c66\"\u003e\u003ccode\u003eb33a2d6\u003c/code\u003e\u003c/a\u003e ci: install downstream systems like gcsfs before testing so the \u003ccode\u003e_version.py\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e9e7a5b5eab42b6c6d0790aa0aa510f66fc44630\"\u003e\u003ccode\u003ee9e7a5b\u003c/code\u003e\u003c/a\u003e Delegate DirFileSystem delete and write_text (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2022\"\u003e#2022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/105d614a443e3f46236deb87442cc5491741687c\"\u003e\u003ccode\u003e105d614\u003c/code\u003e\u003c/a\u003e fix: use encode_url() in _pipe_file for consistency (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2023\"\u003e#2023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/filesystem_spec/compare/2026.3.0...2026.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.11.8 to 3.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.9 - 2026-05-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.95 or later instead of 1.89.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix building on Rust 1.95.\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/ijl/orjson/commit/705515d77b28429d0b7c30c3d781abe52e8a1e5a\"\u003e\u003ccode\u003e705515d\u003c/code\u003e\u003c/a\u003e 3.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d19055d5bab432f98d53b71606a9c6c23fb21bf6\"\u003e\u003ccode\u003ed19055d\u003c/code\u003e\u003c/a\u003e build update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/77e2d96c3febe099cde2447856fe2523d68c71b0\"\u003e\u003ccode\u003e77e2d96\u003c/code\u003e\u003c/a\u003e MSRV 1.95, remove compiler feature detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.8...3.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.1 to 26.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \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/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now 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/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details 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/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite 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/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation 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/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example 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/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor 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/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees 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/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd 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/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\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/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.13.3 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\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/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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/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\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.46.3 to 2.46.4\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\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/core-v2.46.3...core-v2.46.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.45.0 to 0.46.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.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation 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/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in 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/2917\"\u003eKludex/uvicorn#2917\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.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.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.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\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/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydocket` from 0.19.2 to 0.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/chrisguidry/docket/releases\"\u003epydocket's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.1 - Barely Annotated\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies group with 16 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/chrisguidry/docket/pull/402\"\u003echrisguidry/docket#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSurface the run_at_most rule in docstrings and docs by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/403\"\u003echrisguidry/docket#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin uncalled-for\u0026gt;=0.3.2 for bare-class Annotated shorthand by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/404\"\u003echrisguidry/docket#404\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.20.0...0.20.1\"\u003ehttps://github.com/chrisguidry/docket/compare/0.20.0...0.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.20.0 - Burn After Redising\u003c/h2\u003e\n\u003cp\u003eHuge thanks to \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e for his excellent \u003ca href=\"https://pypi.org/project/burner-redis/\"\u003e\u003ccode\u003eburner-redis\u003c/code\u003e\u003c/a\u003e, the new in-memory Redis implementation.  \u003ccode\u003eburner-redis\u003c/code\u003e supplants the venerable \u003ccode\u003efake-redis\u003c/code\u003e as a production-oriented, high-performance implementation.  This should mean major improvements to memory usage, runtime performance, and installation heft.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies group with 9 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/chrisguidry/docket/pull/396\"\u003echrisguidry/docket#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace fakeredis with burner-redis by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/394\"\u003echrisguidry/docket#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin \u003ccode\u003eburner-redis\u0026gt;=0.1.6\u003c/code\u003e by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/399\"\u003echrisguidry/docket#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd list operations to RedisClient protocol by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/400\"\u003echrisguidry/docket#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTighten the RedisClient protocol's types by \u003ca href=\"https://github.com/chrisguidry\"\u003e\u003ccode\u003e@​chrisguidry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/chrisguidry/docket/pull/401\"\u003echrisguidry/docket#401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.19.2...0.20.0\"\u003ehttps://github.com/chrisguidry/docket/compare/0.19.2...0.20.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/chrisguidry/docket/commit/fd2fe5bb6dce74d827432fac8a22458aafebabd0\"\u003e\u003ccode\u003efd2fe5b\u003c/code\u003e\u003c/a\u003e Pin uncalled-for\u0026gt;=0.3.2 for bare-class Annotated shorthand (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/7288855919d27e30c5801ccafc48fb78ec5ffe52\"\u003e\u003ccode\u003e7288855\u003c/code\u003e\u003c/a\u003e Surface the run_at_most rule in docstrings and docs (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/eb373c92bccef3620051275fbe9592c0c1c22f77\"\u003e\u003ccode\u003eeb373c9\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group with 16 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/402\"\u003e#402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/54b516fb61fa3ba6729a077d2869479b25d1580a\"\u003e\u003ccode\u003e54b516f\u003c/code\u003e\u003c/a\u003e Tighten the RedisClient protocol's types (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/ba7b1dfd14c97febd04c8a976134cf961946f140\"\u003e\u003ccode\u003eba7b1df\u003c/code\u003e\u003c/a\u003e Add list operations to RedisClient protocol (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/96612f1a80f97f95ae9a19255be53fa193682649\"\u003e\u003ccode\u003e96612f1\u003c/code\u003e\u003c/a\u003e Pin \u003ccode\u003eburner-redis\u0026gt;=0.1.6\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/24ad947139cebd3956f6e8c37fc5cc2e3dca80c2\"\u003e\u003ccode\u003e24ad947\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003efakeredis\u003c/code\u003e with \u003ccode\u003eburner-redis\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chrisguidry/docket/commit/3c8f09e76eecf23c781c45b8ebfd8dad5d5eceb9\"\u003e\u003ccode\u003e3c8f09e\u003c/code\u003e\u003c/a\u003e Bump the all-dependencies group with 9 updates (\u003ca href=\"https://redirect.github.com/chrisguidry/docket/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/chrisguidry/docket/compare/0.19.2...0.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uv` from 0.11.7 to 0.11.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/uv/releases\"\u003euv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-06....\n\n_Description has been truncated_","html_url":"https://github.com/sxarsky/eval-prefect/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sxarsky%2Feval-prefect/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"}},{"old_version":"4.4.0","new_version":"4.5.0","update_type":"minor","path":null,"pr_created_at":"2026-05-05T02:15:50.000Z","version_change":"4.4.0 → 4.5.0","issue":{"uuid":"4381014545","node_id":"PR_kwDOJDpYW87YPItf","number":197,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 4.4.0 to 4.5.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-05T02:15:50.000Z","updated_at":"2026-05-17T01:02:17.457Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"4.4.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.4.0 to 4.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\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/CodSpeedHQ/pytest-codspeed/commit/2dc73989e2d58c58f7be53bcc9a7955d01461486\"\u003e\u003ccode\u003e2dc7398\u003c/code\u003e\u003c/a\u003e Release v4.5.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48f8ce80dcc9c37033512737315bcd4e5d777e0f\"\u003e\u003ccode\u003e48f8ce8\u003c/code\u003e\u003c/a\u003e chore: pre-build macos binary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/facf0502e5b535882bf7502ee6aba60c5ca78763\"\u003e\u003ccode\u003efacf050\u003c/code\u003e\u003c/a\u003e chore: bump instrument-hooks submodule to use int32_t as pid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d42de442be0037705d13e8c02108210aa230c736\"\u003e\u003ccode\u003ed42de44\u003c/code\u003e\u003c/a\u003e ci: add macos integration test\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.4.0\u0026new-version=4.5.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/Bluetooth-Devices/ulid-transform/pull/197","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fulid-transform/issues/197","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/197/packages"}},{"old_version":"4.3.0","new_version":"4.5.0","update_type":"minor","path":null,"pr_created_at":"2026-05-04T09:04:05.000Z","version_change":"4.3.0 → 4.5.0","issue":{"uuid":"4375275398","node_id":"PR_kwDOK6jZG87X8LhO","number":106,"state":"open","title":"chore(deps-dev): bump pytest-codspeed from 4.3.0 to 4.5.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-05-04T09:04:05.000Z","updated_at":"2026-05-04T09:05:39.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.3.0 to 4.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eWe now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.\u003c/p\u003e\n\u003cp\u003eThis data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: fix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003eCodSpeedHQ/pytest-codspeed#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Exclude setup time from benchmark in walltime mode by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: collect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003eCodSpeedHQ/pytest-codspeed#108\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/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e) by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003e#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python pinned python version by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003e#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd CONTRIBUTING.md by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\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/CodSpeedHQ/pytest-codspeed/commit/2dc73989e2d58c58f7be53bcc9a7955d01461486\"\u003e\u003ccode\u003e2dc7398\u003c/code\u003e\u003c/a\u003e Release v4.5.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48f8ce80dcc9c37033512737315bcd4e5d777e0f\"\u003e\u003ccode\u003e48f8ce8\u003c/code\u003e\u003c/a\u003e chore: pre-build macos binary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/facf0502e5b535882bf7502ee6aba60c5ca78763\"\u003e\u003ccode\u003efacf050\u003c/code\u003e\u003c/a\u003e chore: bump instrument-hooks submodule to use int32_t as pid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d42de442be0037705d13e8c02108210aa230c736\"\u003e\u003ccode\u003ed42de44\u003c/code\u003e\u003c/a\u003e ci: add macos integration test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/34048c79e218307312a7973be67e5022101e8321\"\u003e\u003ccode\u003e34048c7\u003c/code\u003e\u003c/a\u003e Release v4.4.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/bf7bd37cc4f9b2fbab1e46768c38b2c682da19c5\"\u003e\u003ccode\u003ebf7bd37\u003c/code\u003e\u003c/a\u003e feat: collect Python toolchain information via instrument hooks environment API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48a48229b175d47aae083878637a6b4d018faaa9\"\u003e\u003ccode\u003e48a4822\u003c/code\u003e\u003c/a\u003e fix: Exclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/aa267f31bdbc392d66d5142469e0d9c7b04dd617\"\u003e\u003ccode\u003eaa267f3\u003c/code\u003e\u003c/a\u003e ci: bump the python pinned python version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/e92999a7c59e209d3582d36ac0f6bf7e853a7d2d\"\u003e\u003ccode\u003ee92999a\u003c/code\u003e\u003c/a\u003e fix: fix segfault caused by multiple activate_stack_trampoline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/c02b664168bd740fe9116036e9fad8470161ea6d\"\u003e\u003ccode\u003ec02b664\u003c/code\u003e\u003c/a\u003e chore: add CONTRIBUTING.md\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.5.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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.3.0\u0026new-version=4.5.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/Bluetooth-Devices/cached-ipaddress/pull/106","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bluetooth-Devices%2Fcached-ipaddress/issues/106","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/106/packages"}},{"old_version":"4.3.0","new_version":"4.5.0","update_type":"minor","path":null,"pr_created_at":"2026-05-01T06:33:17.000Z","version_change":"4.3.0 → 4.5.0","issue":{"uuid":"4363188000","node_id":"PR_kwDOCvS9pc7XW89X","number":59,"state":"open","title":"Bump pytest-codspeed from 4.3.0 to 4.5.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["emcek"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T06:33:17.000Z","updated_at":"2026-05-01T06:33:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pytest-codspeed","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) from 4.3.0 to 4.5.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds first support for macOS walltime.\u003c/p\u003e\n\u003cp\u003ePlease note that profiling and other instruments are not yet available on macOS and will come in a later update.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport macos walltime without profiling in pytest-codspeed by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003eCodSpeedHQ/pytest-codspeed#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.4.0...v4.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eWe now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.\u003c/p\u003e\n\u003cp\u003eThis data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: fix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003eCodSpeedHQ/pytest-codspeed#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Exclude setup time from benchmark in walltime mode by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: collect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003eCodSpeedHQ/pytest-codspeed#108\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/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003eCodSpeedHQ/pytest-codspeed#114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.5.0] - 2026-04-28\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-build macos binary by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/117\"\u003e#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump instrument-hooks submodule to use int32_t as pid by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd macos integration test by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[4.4.0] - 2026-04-14\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCollect Python toolchain information via instrument hooks environment API by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/108\"\u003e#108\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e) by \u003ca href=\"https://github.com/toby-coleman\"\u003e\u003ccode\u003e@​toby-coleman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/114\"\u003e#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix segfault caused by multiple activate_stack_trampoline by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python pinned python version by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/109\"\u003e#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd CONTRIBUTING.md by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\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/CodSpeedHQ/pytest-codspeed/commit/2dc73989e2d58c58f7be53bcc9a7955d01461486\"\u003e\u003ccode\u003e2dc7398\u003c/code\u003e\u003c/a\u003e Release v4.5.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48f8ce80dcc9c37033512737315bcd4e5d777e0f\"\u003e\u003ccode\u003e48f8ce8\u003c/code\u003e\u003c/a\u003e chore: pre-build macos binary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/facf0502e5b535882bf7502ee6aba60c5ca78763\"\u003e\u003ccode\u003efacf050\u003c/code\u003e\u003c/a\u003e chore: bump instrument-hooks submodule to use int32_t as pid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/d42de442be0037705d13e8c02108210aa230c736\"\u003e\u003ccode\u003ed42de44\u003c/code\u003e\u003c/a\u003e ci: add macos integration test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/34048c79e218307312a7973be67e5022101e8321\"\u003e\u003ccode\u003e34048c7\u003c/code\u003e\u003c/a\u003e Release v4.4.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/bf7bd37cc4f9b2fbab1e46768c38b2c682da19c5\"\u003e\u003ccode\u003ebf7bd37\u003c/code\u003e\u003c/a\u003e feat: collect Python toolchain information via instrument hooks environment API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/48a48229b175d47aae083878637a6b4d018faaa9\"\u003e\u003ccode\u003e48a4822\u003c/code\u003e\u003c/a\u003e fix: Exclude setup time from benchmark in walltime mode (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/aa267f31bdbc392d66d5142469e0d9c7b04dd617\"\u003e\u003ccode\u003eaa267f3\u003c/code\u003e\u003c/a\u003e ci: bump the python pinned python version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/e92999a7c59e209d3582d36ac0f6bf7e853a7d2d\"\u003e\u003ccode\u003ee92999a\u003c/code\u003e\u003c/a\u003e fix: fix segfault caused by multiple activate_stack_trampoline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/c02b664168bd740fe9116036e9fad8470161ea6d\"\u003e\u003ccode\u003ec02b664\u003c/code\u003e\u003c/a\u003e chore: add CONTRIBUTING.md\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.5.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=pytest-codspeed\u0026package-manager=pip\u0026previous-version=4.3.0\u0026new-version=4.5.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/emcek/pyerge/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/emcek%2Fpyerge/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"}}]}