{"id":15247,"name":"psycopg2","ecosystem":"pip","repository_url":"https://github.com/psycopg/psycopg2","issues_count":107,"created_at":"2025-06-06T23:58:14.226Z","updated_at":"2025-06-06T23:58:14.226Z","purl":"pkg:pypi/psycopg2","metadata":{"id":2862330,"name":"psycopg2","ecosystem":"pypi","description":"psycopg2 - Python-PostgreSQL Database Adapter","homepage":"https://psycopg.org/","licenses":"LGPL with exceptions","normalized_licenses":["BSD-3-Clause-Attribution"],"repository_url":"https://github.com/psycopg/psycopg2","keywords_array":[],"namespace":null,"versions_count":63,"first_release_published_at":"2013-04-07T18:18:13.000Z","latest_release_published_at":"2024-10-16T11:18:24.000Z","latest_release_number":"2.9.10","last_synced_at":"2025-06-07T00:15:38.409Z","created_at":"2022-04-10T12:08:12.841Z","updated_at":"2025-06-07T00:15:38.409Z","registry_url":"https://pypi.org/project/psycopg2/","install_command":"pip install psycopg2 --index-url https://pypi.org/simple","documentation_url":"https://www.psycopg.org/docs/","metadata":{"funding":null,"documentation":"https://www.psycopg.org/docs/","classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)","Operating System :: Microsoft :: Windows","Operating System :: Unix","Programming Language :: C","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: SQL","Topic :: Database","Topic :: Database :: Front-Ends","Topic :: Software Development","Topic :: Software Development :: Libraries :: Python Modules"],"normalized_name":"psycopg2"},"repo_metadata":{"id":6490463,"uuid":"7730829","full_name":"psycopg/psycopg2","owner":"psycopg","description":"PostgreSQL database adapter for the Python programming language","archived":false,"fork":false,"pushed_at":"2024-07-17T16:44:43.000Z","size":8859,"stargazers_count":3307,"open_issues_count":28,"forks_count":501,"subscribers_count":69,"default_branch":"master","last_synced_at":"2024-09-05T19:58:51.369Z","etag":null,"topics":["database","driver","postgresql","python"],"latest_commit_sha":null,"homepage":"https://www.psycopg.org/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psycopg.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null},"funding":{"github":["dvarrazzo"],"custom":["https://www.paypal.me/dvarrazzo"]}},"created_at":"2013-01-21T11:05:11.000Z","updated_at":"2024-09-04T16:39:31.000Z","dependencies_parsed_at":"2022-08-06T19:15:40.288Z","dependency_job_id":"41a7efdd-2235-4428-9d53-4a826fe8ecba","html_url":"https://github.com/psycopg/psycopg2","commit_stats":{"total_commits":2734,"total_committers":136,"mean_commits":"20.102941176470587","dds":"0.33796634967081196","last_synced_commit":"89005ac5b849c6428c05660b23c5a266c96e677d"},"previous_names":[],"tags_count":86,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psycopg","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217834953,"owners_count":16238205,"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":"psycopg","name":"The Psycopg Team","uuid":"2947270","kind":"organization","description":"We make reptiles and pachiderms talk to each other.","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/2947270?v=4","repositories_count":7,"last_synced_at":"2024-03-25T20:05:00.531Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/psycopg","funding_links":[],"total_stars":4707,"followers":63,"following":0,"created_at":"2022-11-02T16:25:01.066Z","updated_at":"2024-03-25T20:05:00.542Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psycopg","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psycopg/repositories"},"tags":[{"name":"2.9.9","sha":"ad5bee7054519d87f25bc5828c502b2ebe197049","kind":"tag","published_at":"2023-10-03T12:43:09.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2.9.9","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2.9.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.9/manifests"},{"name":"2.9.8","sha":"b39d5d64923a3e321672847bd57c002145f57430","kind":"tag","published_at":"2023-09-28T11:42:46.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2.9.8","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2.9.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.8/manifests"},{"name":"2.9.7","sha":"3eee3e336d6f7d6f92cb42f1426eefd5f95afa6b","kind":"tag","published_at":"2023-08-05T10:24:43.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2.9.7","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2.9.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.7/manifests"},{"name":"2.9.6","sha":"333b3b7ac45099f7b86ab35ac89152293ac7451d","kind":"tag","published_at":"2023-04-03T03:05:11.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2.9.6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2.9.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2.9.6/manifests"},{"name":"2_9_5","sha":"1bf8e77ea25608c4797a7e902cc02550096e5b40","kind":"tag","published_at":"2022-10-25T11:56:12.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_5/manifests"},{"name":"2_9_4","sha":"bc82c8f9cc42d8f9313e9c78abdbeee82ec9e052","kind":"tag","published_at":"2022-10-06T02:55:53.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_4/manifests"},{"name":"2_9_3-macos-arm64","sha":"25c40f8ac30af161617181e40ecfcbbe767210b6","kind":"tag","published_at":"2022-09-25T01:58:08.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_3-macos-arm64","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_3-macos-arm64","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_3-macos-arm64","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_3-macos-arm64/manifests"},{"name":"2_9_3","sha":"c34bf2f2f90fbbe65e8c4c2650734aa151ddd6ed","kind":"tag","published_at":"2021-12-29T15:21:15.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_3/manifests"},{"name":"2_9_2","sha":"d7c77f80b27341d1ce65e1a9e7d9f658faaf4850","kind":"tag","published_at":"2021-11-12T00:34:55.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_2/manifests"},{"name":"2_9_1-Python_3.10","sha":"4a46aa39a5842887f100ad1fafad55d207497f40","kind":"tag","published_at":"2021-10-11T21:33:06.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_1-Python_3.10","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_1-Python_3.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_1-Python_3.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_1-Python_3.10/manifests"},{"name":"2_9_1","sha":"b241def64bdc9ac350ecae4b665d9eec11a48229","kind":"tag","published_at":"2021-06-17T01:06:47.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9_1/manifests"},{"name":"2_9","sha":"50145014e8abdda2859ed65329ecc3e7b6699521","kind":"tag","published_at":"2021-06-16T15:28:35.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_9","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_9/manifests"},{"name":"2_8_6","sha":"b203be11a69789a50da828a0a5e4c15d2dcf99d4","kind":"tag","published_at":"2020-09-06T16:08:42.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_6/manifests"},{"name":"2_8_5","sha":"cb3353be1f10590cdc2a894ada42c3b4c171feb7","kind":"tag","published_at":"2020-04-06T05:01:56.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_5/manifests"},{"name":"2_8_4","sha":"d70d3ee482bdbeee3894656e1dcec30f38c2d999","kind":"tag","published_at":"2019-10-20T09:04:17.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_4/manifests"},{"name":"2_8_3","sha":"bc65c636aef14ccdb89f8abec1f28a677c1ff0b4","kind":"tag","published_at":"2019-06-13T23:25:15.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_3/manifests"},{"name":"2_8_2","sha":"324cded1661995cc006e04e2c5e6b00e61ab74ba","kind":"tag","published_at":"2019-04-14T17:17:05.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_2/manifests"},{"name":"2_8_1","sha":"15d684134f0972dc25bed904f48b11b7a972a7ab","kind":"tag","published_at":"2019-04-06T19:18:59.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_1/manifests"},{"name":"2_8","sha":"c64d2448e8c3948bb7f950dda51aa5d73161b20c","kind":"tag","published_at":"2019-04-03T09:45:59.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8/manifests"},{"name":"2_8_BETA_2","sha":"953bc66ca66fd8bbc18086bba9218072a9dfb8e7","kind":"tag","published_at":"2019-03-21T18:42:50.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_BETA_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_BETA_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_BETA_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_BETA_2/manifests"},{"name":"2_8_BETA_1","sha":"495ff79f2337b15ce06dadf65ab147c8b19b4e5d","kind":"tag","published_at":"2019-02-16T14:09:43.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_8_BETA_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_8_BETA_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_BETA_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_8_BETA_1/manifests"},{"name":"2_7_7","sha":"09ce4b65e7b28987b36109d83a4afe221dd2a5e8","kind":"tag","published_at":"2019-01-22T11:56:13.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_7","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_7/manifests"},{"name":"2_7_6_1","sha":"fbaad6c932168887f7aa911013fe725506ca5ef8","kind":"tag","published_at":"2018-11-10T23:46:45.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_6_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_6_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_6_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_6_1/manifests"},{"name":"2_7_6","sha":"3b84bc1b6e0f6df5aee71367091eb57511647706","kind":"tag","published_at":"2018-11-08T18:19:24.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_6/manifests"},{"name":"2_7_5","sha":"1b07d2e34dc026905c6415fbce8f24d0077170e3","kind":"tag","published_at":"2018-06-17T17:28:11.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_5/manifests"},{"name":"2_7_4","sha":"5afb2ce803debea9533e293eef73c92ffce95bcd","kind":"tag","published_at":"2018-02-06T09:57:46.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_4/manifests"},{"name":"2_7_3_2","sha":"980145eaee13f5014e929816058b83db78cb0833","kind":"tag","published_at":"2017-10-24T10:55:36.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_3_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_3_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_3_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_3_2/manifests"},{"name":"2_7_3_1","sha":"c45e219387455a845741a72aab4195b452a4c6e0","kind":"tag","published_at":"2017-08-25T14:15:13.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_3_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_3_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_3_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_3_1/manifests"},{"name":"2_7_3","sha":"cd3393b21cf753db0688c29e248f7ce94ff509b6","kind":"tag","published_at":"2017-07-24T14:06:26.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_3/manifests"},{"name":"2_7_2","sha":"cfa0509d7e0616aded28ae6c9d679550b0bff16a","kind":"tag","published_at":"2017-07-22T11:27:16.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_2/manifests"},{"name":"2_7_1","sha":"09c48c76c3b91139c9d645834962c75433281cb9","kind":"tag","published_at":"2017-03-13T00:53:16.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_1/manifests"},{"name":"2_7","sha":"51591e2c23ea42c7bb2f7903ad213f83e21a4b8d","kind":"tag","published_at":"2017-03-01T13:10:07.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7/manifests"},{"name":"2_7_BETA_2","sha":"355d62f0848f9b911fa28eb6fb8e268590db0e09","kind":"tag","published_at":"2017-02-16T19:24:52.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_BETA_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_BETA_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_BETA_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_BETA_2/manifests"},{"name":"2_7_BETA_1","sha":"6f83c9c87aecfd46d180842ef76743ab50ab7486","kind":"tag","published_at":"2017-02-08T10:39:36.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_7_BETA_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_7_BETA_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_BETA_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_7_BETA_1/manifests"},{"name":"2_6_2","sha":"1690fbace1bf498abd5a4c4f68bfaab609bc3587","kind":"tag","published_at":"2016-07-07T02:10:55.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_6_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_6_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_6_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_6_2/manifests"},{"name":"2_6_1","sha":"e707c3f657108bb9a538e509853de6a77de45f69","kind":"tag","published_at":"2015-06-15T09:44:09.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_6_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_6_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_6_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_6_1/manifests"},{"name":"2_6","sha":"5efe7131ff86ba5adf08ead91393f4910e863f1e","kind":"tag","published_at":"2015-02-09T09:47:33.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_6/manifests"},{"name":"2_5_5","sha":"c6d57680aa65fbd8fb185d76600ff9b8b3256e05","kind":"tag","published_at":"2015-02-08T16:47:25.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_5_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_5_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_5/manifests"},{"name":"2_5_4","sha":"00cafbe85bb82d85cbfe0f062a73c562433b5bc8","kind":"tag","published_at":"2014-08-30T17:28:21.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_5_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_5_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_4/manifests"},{"name":"2_5_3","sha":"40c1eea15d8c349400cec254baf73d916a153542","kind":"tag","published_at":"2014-05-13T15:21:09.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_5_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_5_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_3/manifests"},{"name":"2_5_2","sha":"4f1e4a03d1fe01d566f8c7eb830175e5fe0bccc7","kind":"tag","published_at":"2014-01-07T12:03:19.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_5_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_5_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_2/manifests"},{"name":"2_5_1","sha":"68d5d070fe6b701910dfccbf5c41fc23196d3f41","kind":"tag","published_at":"2013-06-23T01:09:30.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_5_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_5_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5_1/manifests"},{"name":"2_5","sha":"80e105c74d1846b036eccf14adad8dbc95dce39c","kind":"tag","published_at":"2013-04-07T16:44:04.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_5/manifests"},{"name":"2_4_6","sha":"4e65ca1d8d1339fd55ab39962f2ed1f22dc542a1","kind":"tag","published_at":"2012-12-11T23:07:46.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_6/manifests"},{"name":"2_4_5","sha":"d7c8c1c49ab695a804c7033d288ed3952cb7517c","kind":"tag","published_at":"2012-03-29T08:21:05.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_5/manifests"},{"name":"2_4_4","sha":"0bc49147d1a9360cd82ad913d25828852151929c","kind":"tag","published_at":"2011-12-19T10:30:51.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_4/manifests"},{"name":"2_4_3","sha":"ba34b6942f95b8797d82c417e0bb314be4cb79f5","kind":"tag","published_at":"2011-12-11T21:20:10.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_3/manifests"},{"name":"2_4_2","sha":"f8ff2ccc49ec32614d42ee852f2fd02fd538e6e5","kind":"tag","published_at":"2011-06-13T16:54:38.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_2/manifests"},{"name":"2_4_1","sha":"ab685c2fc0a04651041957af7419a1ecfeeb9e53","kind":"tag","published_at":"2011-05-11T07:59:19.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_1/manifests"},{"name":"2_4_0","sha":"29f83f05c4f6565ea67d8b5424b1ec66d55c0858","kind":"tag","published_at":"2011-02-27T12:05:24.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_0","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_0/manifests"},{"name":"2_4_BETA2","sha":"3762c67cd474880b42a14d81903c4d9dcf9a7063","kind":"tag","published_at":"2011-02-13T11:29:00.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_BETA2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_BETA2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_BETA2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_BETA2/manifests"},{"name":"2_4_BETA1","sha":"352d0d1f07e2ec0c0aeaa853f57bf88189e134c6","kind":"tag","published_at":"2011-02-06T16:02:44.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_4_BETA1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_4_BETA1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_BETA1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_4_BETA1/manifests"},{"name":"2_3_2","sha":"69c66a3a3fa8e0f9d662ddc986aa32c5a86e2474","kind":"tag","published_at":"2010-12-20T12:38:21.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_3_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_3_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_2/manifests"},{"name":"2_3_1","sha":"ee5015a30bee24ee70b5b22b01a3caefb28668c2","kind":"tag","published_at":"2010-12-04T20:31:27.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_3_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_3_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_1/manifests"},{"name":"2_3_0","sha":"2dae07a796f922924b0b4c01b47f405c6bd76774","kind":"tag","published_at":"2010-12-02T13:43:11.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_3_0","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_3_0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_0/manifests"},{"name":"2_3_0_BETA1","sha":"645ab521f3fd5cc2bc579c0eb53418dfde811100","kind":"tag","published_at":"2010-11-07T14:22:32.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_3_0_BETA1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_3_0_BETA1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_0_BETA1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_3_0_BETA1/manifests"},{"name":"2_2_2","sha":"c3b835929ba0776d65fafeaad62b7756f5114bca","kind":"tag","published_at":"2010-07-18T11:50:03.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_2_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_2_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_2_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_2_2/manifests"},{"name":"2_2_1","sha":"23391a3c55097d22530e21d640a277ffb76d48cf","kind":"tag","published_at":"2010-05-17T19:56:05.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_2_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_2_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_2_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_2_1/manifests"},{"name":"2_2_0","sha":"e286970b625095334ce14a8c0a8a857f914ab53d","kind":"tag","published_at":"2010-05-16T11:21:11.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_2_0","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_2_0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_2_0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_2_0/manifests"},{"name":"2_0_14","sha":"0edd52059300228b6df8813c9c55191e69f1412d","kind":"tag","published_at":"2010-03-13T20:16:22.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_14","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_14/manifests"},{"name":"2_0_13","sha":"5a3e07a6103e61f0724b3f0d17039765898e28fb","kind":"tag","published_at":"2009-10-07T16:28:35.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_13","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_13/manifests"},{"name":"2_0_12","sha":"0fc94be49647874123887f980368820f0a64191e","kind":"tag","published_at":"2009-08-09T15:22:50.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_12","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_12/manifests"},{"name":"2_0_11","sha":"091102a9196dcf877a5ce2adb841e2566b70f6cf","kind":"tag","published_at":"2009-05-09T12:52:36.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_11","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_11/manifests"},{"name":"2_0_10","sha":"f68d828f6bf67b16de5b188623d5d8d2ea527e53","kind":"commit","published_at":"2009-04-20T18:37:59.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_10","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_10/manifests"},{"name":"2_0_9","sha":"71c7825b9cdca0ae62a1a5044928652aede3beb5","kind":"commit","published_at":"2009-02-23T20:39:47.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_9","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_9/manifests"},{"name":"2_0_8","sha":"758eaf23d10c434f8dab0167d0bd3f343cafa60f","kind":"commit","published_at":"2008-09-16T07:58:44.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_8","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_8/manifests"},{"name":"2_0_7","sha":"962c5a9a5f359908311cbe0b37b5f257256c4cf5","kind":"commit","published_at":"2008-04-14T05:23:15.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_7","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_7/manifests"},{"name":"2_0_6","sha":"dfda372fae91b97b525ea44f339062753ed7b8d7","kind":"commit","published_at":"2007-06-08T00:39:06.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_6/manifests"},{"name":"2_0_5_1","sha":"616a1c2042b8d60bfea877a2e1341502ecc90a34","kind":"commit","published_at":"2006-09-02T01:09:31.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_5_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_5_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_5_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_5_1/manifests"},{"name":"2_0_5","sha":"3e0d8792a81d0d411845b348b3da0dc512aefb1f","kind":"commit","published_at":"2006-09-01T12:42:03.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_5/manifests"},{"name":"2_0_4","sha":"526fd62386ecd19e87361a0764d7fdc28ace4556","kind":"commit","published_at":"2006-08-01T23:37:20.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_4/manifests"},{"name":"2_0_3","sha":"f204da89b5aefd0bbe81c38991ca9385270838cb","kind":"commit","published_at":"2006-07-31T00:27:12.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_3/manifests"},{"name":"2_0_2","sha":"8d8bfe969b3c196d77e74f9623059d6459f284f4","kind":"commit","published_at":"2006-06-11T05:15:27.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_2/manifests"},{"name":"2_0_1","sha":"caa9d0feb4b179da7da658074b7472a34cb8f1fd","kind":"commit","published_at":"2006-06-09T00:08:47.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_1/manifests"},{"name":"2_0_0","sha":"39249e474107a8bd8bf541ac3bf91d99fdb67f9f","kind":"commit","published_at":"2006-06-08T00:45:43.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_0","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_0/manifests"},{"name":"2_0_BETA_8","sha":"bf52a9ac213321d8d748890f0552fcb64fba8d9f","kind":"commit","published_at":"2006-02-11T11:02:02.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_8","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_8/manifests"},{"name":"2_0_BETA_7","sha":"d14a2c0639c7e333866caa460754bd403ac17912","kind":"commit","published_at":"2006-02-11T07:09:15.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_7","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_7/manifests"},{"name":"2_0_BETA_6","sha":"985a6cbc1b30088e2ec3c8f74273991ec3e72c09","kind":"commit","published_at":"2005-11-17T06:23:08.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_6","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_6/manifests"},{"name":"2_0_BETA_5","sha":"49a255059e6873e9c26ca80e4f0f7f3e0e997977","kind":"commit","published_at":"2005-10-18T14:44:57.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_5","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_5/manifests"},{"name":"2_0_BETA_4","sha":"86346579ba2969c9003b8f635fc08ba63c3389e5","kind":"commit","published_at":"2005-07-17T04:31:32.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_4","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_4/manifests"},{"name":"2_0_BETA_3","sha":"75d14dfb6e712ba6b2b75fe1cc3417a4c40ae744","kind":"commit","published_at":"2005-05-26T07:41:39.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_3","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_3/manifests"},{"name":"2_0_BETA_2","sha":"a9ecbd098572d78925573a9805878194a8a08eaf","kind":"commit","published_at":"2005-05-25T06:34:56.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_2","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_2/manifests"},{"name":"2_0_BETA_1","sha":"d57ceaadc6c964ed9fe58a586dff8ec2528e1789","kind":"commit","published_at":"2005-05-09T09:48:40.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/2_0_BETA_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/2_0_BETA_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/2_0_BETA_1/manifests"},{"name":"1_99_13","sha":"30b2ba6ebf30f54b02b649a4d6a8b1c23de4345b","kind":"commit","published_at":"2005-03-12T09:19:59.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/1_99_13","html_url":"https://github.com/psycopg/psycopg2/releases/tag/1_99_13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/1_99_13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/1_99_13/manifests"},{"name":"1_99_12_1","sha":"a61f715b461849238be32488d3f33d21ea3ebaf9","kind":"commit","published_at":"2005-03-04T03:36:23.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/1_99_12_1","html_url":"https://github.com/psycopg/psycopg2/releases/tag/1_99_12_1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/1_99_12_1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/1_99_12_1/manifests"},{"name":"1_99_12","sha":"131b8ac1c508656c3311fec40e8b068cdee770c6","kind":"commit","published_at":"2005-03-03T06:52:28.000Z","download_url":"https://codeload.github.com/psycopg/psycopg2/tar.gz/1_99_12","html_url":"https://github.com/psycopg/psycopg2/releases/tag/1_99_12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/1_99_12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psycopg%2Fpsycopg2/tags/1_99_12/manifests"}]},"repo_metadata_updated_at":"2024-09-08T03:14:13.099Z","dependent_packages_count":1211,"downloads":24847378,"downloads_period":"last-month","dependent_repos_count":184323,"rankings":{"downloads":0.06364555113929204,"dependent_repos_count":0.003851748051657444,"dependent_packages_count":0.01944215683217567,"stargazers_count":1.874884218287733,"forks_count":3.0419638779399385,"docker_downloads_count":0.026778819787713657,"average":0.8384277286730851},"purl":"pkg:pypi/psycopg2","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/psycopg2","docker_dependents_count":2240,"docker_downloads_count":2399310604,"usage_url":"https://repos.ecosyste.ms/usage/pypi/psycopg2","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/psycopg2/dependencies","status":null,"funding_links":["https://github.com/sponsors/dvarrazzo","https://www.paypal.me/dvarrazzo"],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/psycopg2/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/psycopg2/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/psycopg2/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/psycopg2/related_packages","maintainers":[{"uuid":"piro","login":"piro","name":null,"email":null,"url":null,"packages_count":18,"html_url":"https://pypi.org/user/piro/","role":null,"created_at":"2023-02-14T10:13:28.437Z","updated_at":"2023-02-14T10:13:28.437Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/piro/packages"},{"uuid":"jerickso","login":"jerickso","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/jerickso/","role":null,"created_at":"2023-02-14T10:13:28.499Z","updated_at":"2023-02-14T10:13:28.499Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jerickso/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690419,"maintainers_count":292811,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":81,"unique_repositories_count_past_30_days":5,"recent_issues":[{"uuid":"4518086667","node_id":"PR_kwDOHsAm8s7fGRFR","number":902,"state":"closed","title":"build(deps): bump the python-deps group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-27T12:17:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T15:50:54.000Z","updated_at":"2026-05-27T12:17:22.000Z","time_to_close":159985,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-deps","update_count":14,"packages":[{"name":"sqlalchemy","old_version":"2.0.49","new_version":"2.0.50","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"boto3","old_version":"1.42.85","new_version":"1.43.14","repository_url":"https://github.com/boto/boto3"},{"name":"awswrangler","old_version":"3.15.1","new_version":"3.16.1","repository_url":"https://github.com/aws/aws-sdk-pandas"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"google-cloud-kms","old_version":"3.12.0","new_version":"3.13.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"tox","old_version":"4.52.0","new_version":"4.54.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"myst-parser","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/executablebooks/MyST-Parser"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.49` | `2.0.50` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [boto3](https://github.com/boto/boto3) | `1.42.85` | `1.43.14` |\n| [awswrangler](https://github.com/aws/aws-sdk-pandas) | `3.15.1` | `3.16.1` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.2.0` |\n| [google-cloud-kms](https://github.com/googleapis/google-cloud-python) | `3.12.0` | `3.13.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.52.0` | `4.54.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.14` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [myst-parser](https://github.com/executablebooks/MyST-Parser) | `5.0.0` | `5.1.0` |\n\n\nUpdates `sqlalchemy` from 2.0.49 to 2.0.50\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.50\u003c/h1\u003e\n\u003cp\u003eReleased: May 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003ePropComparator.of_type()\u003c/code\u003e targeting a joined-table subclass combined\nwith \u003ccode\u003ePropComparator.and_()\u003c/code\u003e referencing a column on that subclass\nwould generate invalid SQL, where the subclass column was not adapted to\nthe subquery alias.  Pull request courtesy Joaquin Hui Gomez.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13203\"\u003e#13203\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where the presence of a \u003ccode\u003eSessionEvents.do_orm_execute()\u003c/code\u003e\nevent hook would cause internal execution options such as \u003ccode\u003eyield_per\u003c/code\u003e and\nloader-specific state from the first \u003ccode\u003eorm_pre_session_exec\u003c/code\u003e pass to leak\ninto the second pass, leading to errors when using relationship loaders\nsuch as \u003ccode\u003eselectinload()\u003c/code\u003e and \u003ccode\u003eimmediateload()\u003c/code\u003e.  The execution\noptions passed to the second compilation pass are now based on the original\noptions plus only the explicit updates made via\n\u003ccode\u003eORMExecuteState.update_execution_options()\u003c/code\u003e within the event hook.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13301\"\u003e#13301\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e on a leaf class (a\nsubclass with no further descendants) or a non-inherited class would fail\nwith an \u003ccode\u003eAttributeError\u003c/code\u003e when used in an ORM statement, due to\n\u003ccode\u003e_orm.configure_mappers()\u003c/code\u003e not being triggered implicitly. The fix\nensures that \u003ccode\u003eAliasedInsp\u003c/code\u003e participates in the \u003ccode\u003e_post_inspect\u003c/code\u003e\nhook, triggering mapper configuration during ORM statement compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13319\"\u003e#13319\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where floor division (\u003ccode\u003e//\u003c/code\u003e) between a \u003ccode\u003eFloat\u003c/code\u003e or\n\u003ccode\u003eNumeric\u003c/code\u003e numerator and an \u003ccode\u003eInteger\u003c/code\u003e denominator would omit\nthe \u003ccode\u003eFLOOR()\u003c/code\u003e SQL wrapper on dialects where\n\u003ccode\u003eDialect.div_is_floordiv\u003c/code\u003e is \u003ccode\u003eTrue\u003c/code\u003e (the default, including\nPostgreSQL and SQLite).  \u003ccode\u003eFLOOR()\u003c/code\u003e is now applied if either the\ndenominator or the numerator is a non-integer, so that expressions such as\n\u003ccode\u003efloat_col // int_col\u003c/code\u003e render as \u003ccode\u003eFLOOR(float_col / int_col)\u003c/code\u003e instead\nof the incorrect \u003ccode\u003efloat_col / int_col\u003c/code\u003e.  Pull request courtesy r266-tech.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/10528\"\u003e#10528\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\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.85 to 1.43.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/07953b03a1c6fc86660852ee65a21c3ceae3f437\"\u003e\u003ccode\u003e07953b0\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.14'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/25c77c306c3efba0d44bebec97ab882ddd6f0958\"\u003e\u003ccode\u003e25c77c3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5e64afcd4172f04cd4b62a40050bd6088e316316\"\u003e\u003ccode\u003e5e64afc\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/97921f4babf469d1c1fbbb27746bbaece6008122\"\u003e\u003ccode\u003e97921f4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.13'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4e58a354db37897d65024fca50e9f9b4e4845068\"\u003e\u003ccode\u003e4e58a35\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.13' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1307ac2642ed8e53aca983b1c89e952309a0c66d\"\u003e\u003ccode\u003e1307ac2\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c75c901f5be45cce8e8f46733ee0562d06110c81\"\u003e\u003ccode\u003ec75c901\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/d3f2433ff49062a75426c406e606625b69a32eb6\"\u003e\u003ccode\u003ed3f2433\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d5eddf97fcacb8e8aecf0ff043501ff97454f105\"\u003e\u003ccode\u003ed5eddf9\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/93f3a42377b288934f08416a9c3b63920d8163c6\"\u003e\u003ccode\u003e93f3a42\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.12\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.85...1.43.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awswrangler` from 3.15.1 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-pandas/releases\"\u003eawswrangler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAWS SDK for pandas 3.16.1\u003c/h2\u003e\n\u003ch2\u003eNotable Changes ⚠️\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epyarrow upgraded from v20.0.0 to v.22.0.0 in AWS lambda layers ⚠️\u003c/li\u003e\n\u003cli\u003eAWS Lambda layer region expansion: added layers in ca-west-1  Canada West (Calgary) 🇨🇦\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(athena): verify bucket ownership and manifest integrity by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3314\"\u003eaws/aws-sdk-pandas#3314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Dependency Updates 🛡️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump cryptography from 46.0.6 to 46.0.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3297\"\u003eaws/aws-sdk-pandas#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump uv from 0.10.10 to 0.11.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3299\"\u003eaws/aws-sdk-pandas#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump pytest from 8.4.2 to 9.0.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/aws/aws-sdk-pandas/pull/3303\"\u003eaws/aws-sdk-pandas#3303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): upgrade lxml to 6.1.0 and redshift-connector to 2.1.13 (CVE-2026-41066) by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3309\"\u003eaws/aws-sdk-pandas#3309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): bump ray, jupyterlab, nbconvert, pip due to CVEs by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3316\"\u003eaws/aws-sdk-pandas#3316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the github-actions group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3300\"\u003eaws/aws-sdk-pandas#3300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Release 3.16.1 by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3318\"\u003eaws/aws-sdk-pandas#3318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump jupyter-server from 2.17.0 to 2.18.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3321\"\u003eaws/aws-sdk-pandas#3321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the development-dependencies group across 1 directory with 11 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/aws/aws-sdk-pandas/pull/3323\"\u003eaws/aws-sdk-pandas#3323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): allow pyarrow 24 by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3325\"\u003eaws/aws-sdk-pandas#3325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Update layers.rst by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3296\"\u003eaws/aws-sdk-pandas#3296\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/aws/aws-sdk-pandas/compare/3.16.0...3.16.1\"\u003ehttps://github.com/aws/aws-sdk-pandas/compare/3.16.0...3.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eAWS SDK for pandas 3.16.0\u003c/h2\u003e\n\u003ch2\u003eNotable Changes ⚠️\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Support Pandas 3.x by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3272\"\u003eaws/aws-sdk-pandas#3272\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures / Enhancements 🚀\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Support S3 Tables by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3273\"\u003eaws/aws-sdk-pandas#3273\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Sanitize SQL construction in Redshift module by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3281\"\u003eaws/aws-sdk-pandas#3281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve Dependabot LICENSE.txt parse error by \u003ca href=\"https://github.com/jaidisido\"\u003e\u003ccode\u003e@​jaidisido\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3286\"\u003eaws/aws-sdk-pandas#3286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(iceberg): too many open partitions by sorting inserts by \u003ca href=\"https://github.com/knQzx\"\u003e\u003ccode\u003e@​knQzx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3294\"\u003eaws/aws-sdk-pandas#3294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Support Athena workgroups with managed query results (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/issues/3174\"\u003e#3174\u003c/a\u003e) by \u003ca href=\"https://github.com/Will282\"\u003e\u003ccode\u003e@​Will282\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3275\"\u003eaws/aws-sdk-pandas#3275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Bundle libxslt/libexslt shared libraries in Lambda layer by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3295\"\u003eaws/aws-sdk-pandas#3295\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Dependency Updates 🛡️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump aiohttp from 3.13.3 to 3.13.4 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/aws/aws-sdk-pandas/pull/3292\"\u003eaws/aws-sdk-pandas#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pyasn1 from 0.6.2 to 0.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3289\"\u003eaws/aws-sdk-pandas#3289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.5 to 2.33.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3288\"\u003eaws/aws-sdk-pandas#3288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pygments from 2.19.2 to 2.20.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3287\"\u003eaws/aws-sdk-pandas#3287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump cryptography from 46.0.5 to 46.0.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3290\"\u003eaws/aws-sdk-pandas#3290\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Release 3.16.0 by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3285\"\u003eaws/aws-sdk-pandas#3285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update layers.rst by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3269\"\u003eaws/aws-sdk-pandas#3269\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/aws/aws-sdk-pandas/commit/5f26a71674977808db7e7fc2c2d3578db79c1a5a\"\u003e\u003ccode\u003e5f26a71\u003c/code\u003e\u003c/a\u003e chore: Update layers.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/56f12d8bba8abf4c2900ddc67abfc74c2d643c8a\"\u003e\u003ccode\u003e56f12d8\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): bundle libicu for AL2023 runtime compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/5578901e6e242dec955513ccedb4a734e33031db\"\u003e\u003ccode\u003e5578901\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): remove stale lxml 6.0.2 dist-info before upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/2a5d6a2593dd88a95f57ab8af01651e62bd2ca48\"\u003e\u003ccode\u003e2a5d6a2\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): install libatomic on AL2023 and broaden lib search\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/d8a98b18d7162d1287f3b2fe76f49ed08d4e78f4\"\u003e\u003ccode\u003ed8a98b1\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): bundle libatomic.so.1 for pyarrow 22+ runtime\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/1f45c87a8d542ec218d8b339e51164792236be4c\"\u003e\u003ccode\u003e1f45c87\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): install libatomic for pyarrow 22 linker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/3da7549d88987113c320ceb1e3d5ee361bece333\"\u003e\u003ccode\u003e3da7549\u003c/code\u003e\u003c/a\u003e chore(lambda-layer): bump pyarrow to 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/8c7b9edbc5e47f29cb667e24876586d10e2dfc45\"\u003e\u003ccode\u003e8c7b9ed\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): upgrade lxml past redshift-connector cap for CVE-2026-41066\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/fcf7b8c5a6b2f2934c42cdd0da6ac8a1bf3ebef1\"\u003e\u003ccode\u003efcf7b8c\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): pin pyarrow to local wheel version in pip install\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/04733f229053c9fa027745354ab39623d76c224a\"\u003e\u003ccode\u003e04733f2\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): point pip at pre-built pyarrow wheel via --find-links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-pandas/compare/3.15.1...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymysql` from 1.1.2 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/releases\"\u003epymysql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1232\"\u003ePyMySQL/PyMySQL#1232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReorganize TLS options: implement PREFERRED/REQUIRED SSL mode behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1235\"\u003ePyMySQL/PyMySQL#1235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1236\"\u003ePyMySQL/PyMySQL#1236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e) by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1237\"\u003ePyMySQL/PyMySQL#1237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update outdated requirements and reference links by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1239\"\u003ePyMySQL/PyMySQL#1239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare CHANGELOG for v1.2.0 release from v1.1.3 changes by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1238\"\u003ePyMySQL/PyMySQL#1238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e again by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1240\"\u003ePyMySQL/PyMySQL#1240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1241\"\u003ePyMySQL/PyMySQL#1241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1243\"\u003ePyMySQL/PyMySQL#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v1.2.0 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1244\"\u003ePyMySQL/PyMySQL#1244\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/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecallproc: escape procname by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1225\"\u003ePyMySQL/PyMySQL#1225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse ubuntu-slim and dependabot by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1226\"\u003ePyMySQL/PyMySQL#1226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1227\"\u003ePyMySQL/PyMySQL#1227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1228\"\u003ePyMySQL/PyMySQL#1228\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1229\"\u003ePyMySQL/PyMySQL#1229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 1.1.3 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1230\"\u003ePyMySQL/PyMySQL#1230\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1227\"\u003ePyMySQL/PyMySQL#1227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.2...v1.1.3\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.2...v1.1.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/PyMySQL/PyMySQL/blob/main/CHANGELOG.md\"\u003epymysql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eRelease date: 2026-05-19\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eConnection.ping()\u003c/code\u003e change the default to not reconnect and deprecate \u003ccode\u003ereconnect\u003c/code\u003e argument.\nCreate a new connection if you want to reconnect. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError classes in Cursor class are removed. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econnect()\u003c/code\u003e arguments \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e now emit DeprecationWarning.\nUse \u003ccode\u003edatabase\u003c/code\u003e and \u003ccode\u003epassword\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReorganize TLS connection behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePyMySQL uses TLS by default when server supports it.\nUse \u003ccode\u003essl_disabled=True\u003c/code\u003e to prohibit SSL. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003essl_verify_cert=True\u003c/code\u003e, \u003ccode\u003essl_verify_identity=True\u003c/code\u003e, an \u003ccode\u003essl.SSLContext\u003c/code\u003e is passed,\nor when any other SSL option is configured, the connection \u003cstrong\u003erequires\u003c/strong\u003e SSL and raises\n\u003ccode\u003eOperationalError\u003c/code\u003e (CR_SSL_CONNECTION_ERROR) if the server doesn't support it. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1234\"\u003e#1234\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1236\"\u003e#1236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1237\"\u003e#1237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.set_charset(charset)\u003c/code\u003e now emits \u003ccode\u003eDeprecationWarning\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.3\u003c/h2\u003e\n\u003cp\u003eRelease date: 2026-05-01\u003c/p\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCursor.callproc()\u003c/code\u003e didn't escape procedure name. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1206\"\u003e#1206\u003c/a\u003e)\nThere was a possibility of SQL injection when calling a procedure with a string received from an untrusted source as the procedure name.\u003c/p\u003e\n\u003cp\u003eNOTICE: This change may cause backward compatibility issues. If you specified a procedure name like \u003ccode\u003e\u0026quot;dbname.funcname\u0026quot;\u003c/code\u003e, the previous version called \u003ccode\u003eCALL dbname.funcname\u003c/code\u003e, but from this version, it will call \u003ccode\u003eCALL `dbname.funcname` \u003c/code\u003e so you cannot specify procedure name with database name anymore.\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/PyMySQL/PyMySQL/commit/0f1c324a6b73e34810af3e584f6d32554604488a\"\u003e\u003ccode\u003e0f1c324\u003c/code\u003e\u003c/a\u003e use ubuntu-latest for pypi publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/53b16b22f0fefc64ccf4606f20c87bedcceb1cac\"\u003e\u003ccode\u003e53b16b2\u003c/code\u003e\u003c/a\u003e Release v1.2.0 (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/637fe7e6b2b1bc6effefc53d0faccfe3d5036ea5\"\u003e\u003ccode\u003e637fe7e\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/23ca04a357a042db4188adefd04031c205837927\"\u003e\u003ccode\u003e23ca04a\u003c/code\u003e\u003c/a\u003e add AGENTS.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/7349a44e2b264395bd2d78fe3c9b7fdb26a7e740\"\u003e\u003ccode\u003e7349a44\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/ad5c50c254925caf24dbc06832a69f5c5c5ec76b\"\u003e\u003ccode\u003ead5c50c\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c963edbf53ac52f9ea6c9717411127d0d7f7061a\"\u003e\u003ccode\u003ec963edb\u003c/code\u003e\u003c/a\u003e Deprecation and removals (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/af6b9b42abcea73d9bfdb0aaff75656171c9cec7\"\u003e\u003ccode\u003eaf6b9b4\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for v1.2.0 release from v1.1.3 changes (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1238\"\u003e#1238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c7bf73f1987c3b78debb39a7a074e806178ecc9b\"\u003e\u003ccode\u003ec7bf73f\u003c/code\u003e\u003c/a\u003e docs: update outdated requirements and reference links (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1239\"\u003e#1239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c532b8d9d515ac5769cd285a5a520afed1e035c1\"\u003e\u003ccode\u003ec532b8d\u003c/code\u003e\u003c/a\u003e Reject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, `±Infini...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.2...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-kms` from 3.12.0 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-kms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-kms: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.52.0 to 4.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.54.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(conftest): strip broken nspkg.pth files under py3.15 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3937\"\u003etox-dev/tox#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(packaging): declare tox.pytest deps via a testing extra by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3940\"\u003etox-dev/tox#3940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(schema): cover every replace form in the TOML schema by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3941\"\u003etox-dev/tox#3941\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.1...4.54.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.1...4.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.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(security): harden user-facing logs and untrusted inputs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3924\"\u003etox-dev/tox#3924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(type): correct argparse override signatures for ty 0.0.33 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3932\"\u003etox-dev/tox#3932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: allow deps arrays in TOML schema by \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\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/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.0...4.53.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.0...4.53.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(toml): allow bare range/labeled dicts in env_list by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3923\"\u003etox-dev/tox#3923\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.1...4.53.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.1...4.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.52.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003euse normalize_isa for architecture factor matching by \u003ca href=\"https://github.com/rahuldevikar\"\u003e\u003ccode\u003e@​rahuldevikar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3919\"\u003etox-dev/tox#3919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(pip): invalidate install cache on resolution env var changes by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3921\"\u003etox-dev/tox#3921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.0...4.52.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.0...4.52.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare the runtime dependencies of the \u003ccode\u003etox.pytest\u003c/code\u003e plugin (\u003ccode\u003epytest\u003c/code\u003e, \u003ccode\u003edevpi-process\u003c/code\u003e and \u003ccode\u003epytest-mock\u003c/code\u003e)\nunder a new \u003ccode\u003etesting\u003c/code\u003e extra, so plugin authors can pull them in via \u003ccode\u003etox[testing]\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3938\u003c/code\u003e, :issue:\u003ccode\u003e3940\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExtend the generated TOML schema to cover every \u003ccode\u003ereplace\u003c/code\u003e table form (\u003ccode\u003eenv\u003c/code\u003e, \u003ccode\u003eref\u003c/code\u003e, \u003ccode\u003eposargs\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e,\n\u003ccode\u003eif\u003c/code\u003e), including conditional replacements used inside \u003ccode\u003ecommands\u003c/code\u003e. A guard test asserts the schema stays in sync\nwith the loader implementation so future replace types cannot be added without a corresponding schema entry.\n(:issue:\u003ccode\u003e3939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.1 (2026-05-02)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eBug fixes - 4.53.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eHardening pass on user-facing logging and config parsing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMask secret-looking \u003ccode\u003e--key=value\u003c/code\u003e flag values in command logs (terminal warnings, \u003ccode\u003e.tox/\u0026lt;env\u0026gt;/log/*.log\u003c/code\u003e, and\n\u003ccode\u003eOutcome\u003c/code\u003e \u003ccode\u003e__repr__\u003c/code\u003e) using the same keyword regex previously applied to environment variable values.\u003c/li\u003e\n\u003cli\u003eResolve PEP 723 \u003ccode\u003escript\u003c/code\u003e paths and reject any that escape \u003ccode\u003etox_root\u003c/code\u003e; cap the script read at 5 MiB so a symlink\nto \u003ccode\u003e/dev/zero\u003c/code\u003e cannot exhaust memory.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eeval()\u003c/code\u003e of a constructed \u003ccode\u003eLiteral[...]\u003c/code\u003e string in the CLI parser with a direct\n\u003ccode\u003eLiteral[tuple(action.choices)]\u003c/code\u003e subscript.\u003c/li\u003e\n\u003cli\u003ePass \u003ccode\u003etimeout=30\u003c/code\u003e to \u003ccode\u003eurlopen\u003c/code\u003e when fetching a remote requirements file so a slow or unresponsive mirror cannot\nhang \u003ccode\u003etox\u003c/code\u003e indefinitely. (:issue:\u003ccode\u003e3924\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow the generated TOML schema to validate array values for \u003ccode\u003edeps\u003c/code\u003e. (:issue:\u003ccode\u003e3929\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrect type annotations for \u003ccode\u003eArgumentParser.parse_args\u003c/code\u003e and \u003ccode\u003eparse_known_args\u003c/code\u003e overrides following \u003ccode\u003etypeshed PR [#15613](https://github.com/tox-dev/tox/issues/15613) \u0026lt;https://github.com/python/typeshed/pull/15613\u0026gt;\u003c/code\u003e_, which widened the \u003ccode\u003eargs\u003c/code\u003e parameter from \u003ccode\u003eSequence[str]\u003c/code\u003e\nto \u003ccode\u003eIterable[str]\u003c/code\u003e. The narrower type in tox's overrides violated the Liskov substitution principle and caused\n\u003ccode\u003einvalid-method-override\u003c/code\u003e errors with \u003ccode\u003ety\u003c/code\u003e 0.0.33. Also correct the \u003ccode\u003eoption_spec\u003c/code\u003e annotation in\n\u003ccode\u003edocs/tox_conf.py\u003c/code\u003e to \u003ccode\u003eClassVar[dict[str, Callable[[str], Any]]]\u003c/code\u003e matching the docutils stubs type.\n(:issue:\u003ccode\u003e3932\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.53.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eTOML \u003ccode\u003eenv_list\u003c/code\u003e now accepts bare range dicts (\u003ccode\u003e{ prefix = \u0026quot;3.\u0026quot;, start = 12, stop = 14 }\u003c/code\u003e) and bare labeled dicts\n(\u003ccode\u003e{ ecosystem = [\u0026quot;oci\u0026quot;, \u0026quot;python\u0026quot;] }\u003c/code\u003e) as top-level items, removing the \u003ccode\u003e{ product = [...] }\u003c/code\u003e wrapper when there is\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/tox-dev/tox/commit/1f1fcc7a53665a827d8a304190696c6926ebb2eb\"\u003e\u003ccode\u003e1f1fcc7\u003c/code\u003e\u003c/a\u003e release 4.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b35c8eedaf94906ed0e7938c7526dced550e6fa0\"\u003e\u003ccode\u003eb35c8ee\u003c/code\u003e\u003c/a\u003e 🐛 fix(schema): cover every replace form in the TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3941\"\u003e#3941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6eb5c4f5eec439b3924d6adb3d9d16ea7fc88a20\"\u003e\u003ccode\u003e6eb5c4f\u003c/code\u003e\u003c/a\u003e ✨ feat(packaging): declare tox.pytest deps via a testing extra (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3940\"\u003e#3940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1ad47ddaab21c891f136a9627d1c6cdb6ea655d7\"\u003e\u003ccode\u003e1ad47dd\u003c/code\u003e\u003c/a\u003e 🧪 test(conftest): strip broken nspkg.pth files under py3.15 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3937\"\u003e#3937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dfba9661b10aa5148daf7267b80fec50f4faa9d2\"\u003e\u003ccode\u003edfba966\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3936\"\u003e#3936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/21069af5f5b93774f88c271d5deb1389cd2caf12\"\u003e\u003ccode\u003e21069af\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3933\"\u003e#3933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/2b177917e4c0208c3e380e43f8d32d507180d82e\"\u003e\u003ccode\u003e2b17791\u003c/code\u003e\u003c/a\u003e release 4.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/86234dd57fc6a6dbf801aa98a91642cb9daf1dc8\"\u003e\u003ccode\u003e86234dd\u003c/code\u003e\u003c/a\u003e fix: allow deps arrays in TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3931\"\u003e#3931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dd305fe8f347c49fcd3bd63d5e56c912e4c428f2\"\u003e\u003ccode\u003edd305fe\u003c/code\u003e\u003c/a\u003e 🐛 fix(type): correct argparse override signatures for ty 0.0.33 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/3aa3cd5d4226dfdb54de3de810cd9367390c6424\"\u003e\u003ccode\u003e3aa3cd5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.0...4.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on ...\n\n_Description has been truncated_","html_url":"https://github.com/repository-service-tuf/repository-service-tuf-worker/pull/902","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/repository-service-tuf%2Frepository-service-tuf-worker/issues/902","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/902/packages"},{"uuid":"4501917941","node_id":"PR_kwDOHGh5u87eTq-E","number":953,"state":"closed","title":"build(deps): bump the pipenv group across 1 directory with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T15:54:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T10:32:57.000Z","updated_at":"2026-05-25T15:54:28.000Z","time_to_close":278489,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pipenv","update_count":18,"packages":[{"name":"click","old_version":"8.3.2","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"rich","old_version":"14.3.3","new_version":"14.3.4","repository_url":"https://github.com/Textualize/rich"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"beaupy","old_version":"3.11.0","new_version":"3.12.0","repository_url":"https://github.com/petereon/beaupy"},{"name":"boto3","old_version":"1.42.83","new_version":"1.43.13","repository_url":"https://github.com/boto/boto3"},{"name":"google-cloud-kms","old_version":"3.12.0","new_version":"3.13.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"azure-keyvault-keys","old_version":"4.11.0","new_version":"4.11.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"tox","old_version":"4.52.0","new_version":"4.54.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"pip","old_version":"26.0.1","new_version":"26.1.1","repository_url":"https://github.com/pypa/pip"},{"name":"hatchling","old_version":"1.27.0","new_version":"1.29.0","repository_url":"https://github.com/pypa/hatch"},{"name":"build","old_version":"1.4.2","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"types-requests","old_version":"2.33.0.20260402","new_version":"2.33.0.20260518","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pipenv group with 18 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.4.1` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `14.3.4` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [beaupy](https://github.com/petereon/beaupy) | `3.11.0` | `3.12.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.83` | `1.43.13` |\n| [google-cloud-kms](https://github.com/googleapis/google-cloud-python) | `3.12.0` | `3.13.0` |\n| [azure-keyvault-keys](https://github.com/Azure/azure-sdk-for-python) | `4.11.0` | `4.11.1` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [tox](https://github.com/tox-dev/tox) | `4.52.0` | `4.54.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [pip](https://github.com/pypa/pip) | `26.0.1` | `26.1.1` |\n| [hatchling](https://github.com/pypa/hatch) | `1.27.0` | `1.29.0` |\n| [build](https://github.com/pypa/build) | `1.4.2` | `1.5.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260402` | `2.33.0.20260518` |\n\n\nUpdates `click` from 8.3.2 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\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.0/\"\u003ehttps://pypi.org/project/click/8.4.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParamType\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3371\"\u003e#3371\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3372\"\u003e#3372\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParameter\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2805\"\u003e#2805\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\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\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\u003ch2\u003eVersion 8.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n:pr:\u003ccode\u003e3372\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e2805\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\n:issue:\u003ccode\u003e2745\u003c/code\u003e :pr:\u003ccode\u003e3364\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype=UNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e of non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or \u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through unchanged\ninstead of being stringified. Previously \u003ccode\u003etype=click.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. :issue:\u003ccode\u003e2012\u003c/code\u003e :pr:\u003ccode\u003e3363\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/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.3.2...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.3.3 to 14.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/ee8378c3bbbd7c75abc2f55c6c19e83b218ae81d\"\u003e\u003ccode\u003eee8378c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4073\"\u003e#4073\u003c/a\u003e from Textualize/bump1434\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f441a326f10af5dc0cd570dadaed16e7f7035fc3\"\u003e\u003ccode\u003ef441a32\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/b3167144fea59b02e257c1361f5e0c5832065ccd\"\u003e\u003ccode\u003eb316714\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/a86dce09714f4e5195cce8c15fce7a586d7b562a\"\u003e\u003ccode\u003ea86dce0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3845\"\u003e#3845\u003c/a\u003e from akx/faster-ids\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7f40063da781f4990d21423f23f7ccb3165ce0bd\"\u003e\u003ccode\u003e7f40063\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4070\"\u003e#4070\u003c/a\u003e from KRRT7/upstream/lazy-traceback-logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/6729c6f6c4ee24a13a94d825cb7ce66b52206db2\"\u003e\u003ccode\u003e6729c6f\u003c/code\u003e\u003c/a\u003e typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/64f2f1cf89a698f17f5b2c801b014dc8aced1177\"\u003e\u003ccode\u003e64f2f1c\u003c/code\u003e\u003c/a\u003e import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/de4a8bd5746a3cbda6d8ead9f75cbf49f868a639\"\u003e\u003ccode\u003ede4a8bd\u003c/code\u003e\u003c/a\u003e lazy is_expandable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/e5b7b3199fecb1f7d1fbc3d3d0df800fa6234830\"\u003e\u003ccode\u003ee5b7b31\u003c/code\u003e\u003c/a\u003e no need to rename locals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/5d6e2d72e4012eb594e131a8319dbd4165d97eda\"\u003e\u003ccode\u003e5d6e2d7\u003c/code\u003e\u003c/a\u003e fix docstring\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v14.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beaupy` from 3.11.0 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/petereon/beaupy/releases\"\u003ebeaupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: update python versions and fix test CI action by \u003ca href=\"https://github.com/petereon\"\u003e\u003ccode\u003e@​petereon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/156\"\u003epetereon/beaupy#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency python to 3.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/154\"\u003epetereon/beaupy#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v25.12.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/153\"\u003epetereon/beaupy#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mock to v5.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/151\"\u003epetereon/beaupy#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/142\"\u003epetereon/beaupy#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): update dependency emoji to v2.14.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/140\"\u003epetereon/beaupy#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update jamesives/github-pages-deploy-action action to v4.7.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/146\"\u003epetereon/beaupy#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/161\"\u003epetereon/beaupy#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update jamesives/github-pages-deploy-action action to v4.8.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/160\"\u003epetereon/beaupy#160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/159\"\u003epetereon/beaupy#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency questo to v0.4.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/158\"\u003epetereon/beaupy#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update github/codeql-action action to v4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/165\"\u003epetereon/beaupy#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/163\"\u003epetereon/beaupy#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest-cov to v7 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/164\"\u003epetereon/beaupy#164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update pypa/gh-action-pypi-publish digest to 03f86fe by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/134\"\u003epetereon/beaupy#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v26 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/167\"\u003epetereon/beaupy#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update stefanzweifel/git-auto-commit-action action to v7 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/166\"\u003epetereon/beaupy#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update pypa/gh-action-pypi-publish digest to e2bab26 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/168\"\u003epetereon/beaupy#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency flake8-simplify to v0.30.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/150\"\u003epetereon/beaupy#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency toml-sort to v0.24.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/149\"\u003epetereon/beaupy#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update pypa/gh-action-pypi-publish digest to cef2210 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/169\"\u003epetereon/beaupy#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v26.3.1 [security] by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/172\"\u003epetereon/beaupy#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest-cov to v7.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/173\"\u003epetereon/beaupy#173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency toml-sort to v0.24.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/174\"\u003epetereon/beaupy#174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/175\"\u003epetereon/beaupy#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.20.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/176\"\u003epetereon/beaupy#176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 [security] by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/179\"\u003epetereon/beaupy#179\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.20.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/178\"\u003epetereon/beaupy#178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v26.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/183\"\u003epetereon/beaupy#183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: auto-pagination for longer lists than console size by \u003ca href=\"https://github.com/petereon\"\u003e\u003ccode\u003e@​petereon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/186\"\u003epetereon/beaupy#186\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/petereon/beaupy/compare/v3.11.0...v3.12.0\"\u003ehttps://github.com/petereon/beaupy/compare/v3.11.0...v3.12.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/petereon/beaupy/commit/d9d8577621abeae86bd8b1850e827ea9fca1fd0c\"\u003e\u003ccode\u003ed9d8577\u003c/code\u003e\u003c/a\u003e chore: bump version from 3.11.0 to 3.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/47744409ee262465a2f3bed51f2d77aa499bb917\"\u003e\u003ccode\u003e4774440\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/186\"\u003e#186\u003c/a\u003e from petereon/auto-pagination\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/921dd5d1505662037778a125eb84d4ad2ce59b0f\"\u003e\u003ccode\u003e921dd5d\u003c/code\u003e\u003c/a\u003e feat: auto-pagination for longer lists than console size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/4797730dc88f8cf3d4c2ac0a9ca054506824fc29\"\u003e\u003ccode\u003e4797730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/183\"\u003e#183\u003c/a\u003e from petereon/renovate/black-26.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/516d53cc3b8cfa47f1ee12ce5471b6128c7315ad\"\u003e\u003ccode\u003e516d53c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/2b3e71d98e0ba14cba384abd427b590b55da1ed7\"\u003e\u003ccode\u003e2b3e71d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/178\"\u003e#178\u003c/a\u003e from petereon/renovate/mypy-1.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/7b9253fa26400b348a88a1eac7e23ff0076412c3\"\u003e\u003ccode\u003e7b9253f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/179\"\u003e#179\u003c/a\u003e from petereon/renovate/pypi-pytest-vulnerability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/a4328a124d1db144fe729c1bd03d1431653b1141\"\u003e\u003ccode\u003ea4328a1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.3 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/a5afb6074875b15728be3a9141318984cfa2178e\"\u003e\u003ccode\u003ea5afb60\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mypy to v1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/cf1d47ec126cbe3f271fb624adcf9a7b1e3425c2\"\u003e\u003ccode\u003ecf1d47e\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mypy to v1.20.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/petereon/beaupy/compare/v3.11.0...v3.12.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.83 to 1.43.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/97921f4babf469d1c1fbbb27746bbaece6008122\"\u003e\u003ccode\u003e97921f4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.13'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1307ac2642ed8e53aca983b1c89e952309a0c66d\"\u003e\u003ccode\u003e1307ac2\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c75c901f5be45cce8e8f46733ee0562d06110c81\"\u003e\u003ccode\u003ec75c901\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/d3f2433ff49062a75426c406e606625b69a32eb6\"\u003e\u003ccode\u003ed3f2433\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d5eddf97fcacb8e8aecf0ff043501ff97454f105\"\u003e\u003ccode\u003ed5eddf9\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/93f3a42377b288934f08416a9c3b63920d8163c6\"\u003e\u003ccode\u003e93f3a42\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5355abdca2dfffff34b4e7b05135911845a87631\"\u003e\u003ccode\u003e5355abd\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/9ef5febabaaa8cb403fb3a5e97b0b6d333a0851a\"\u003e\u003ccode\u003e9ef5feb\u003c/code\u003e\u003c/a\u003e Bump idna from 3.7 to 3.15 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4788\"\u003e#4788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c628e75265dc9d48b40a216c72575e46348bbd21\"\u003e\u003ccode\u003ec628e75\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.11'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/210f10744645854d03856c59e73b4db84144dacb\"\u003e\u003ccode\u003e210f107\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.11' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.83...1.43.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-kms` from 3.12.0 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-kms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-kms: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-keyvault-keys` from 4.11.0 to 4.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-keyvault-keys's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-keyvault-keys_4.11.1\u003c/h2\u003e\n\u003ch2\u003e4.11.1 (2026-05-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures Added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for service API version \u003ccode\u003e2025-07-01\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/46716\"\u003e#46716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKey Vault API version \u003ccode\u003e2025-07-01\u003c/code\u003e is now the default\u003c/li\u003e\n\u003cli\u003eUpdated minimum \u003ccode\u003ecryptography\u003c/code\u003e version to 44.0.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/18e7c83822d6c4ab36100a52024d7791f5ce99d6\"\u003e\u003ccode\u003e18e7c83\u003c/code\u003e\u003c/a\u003e Update release plan and SDK release skills with improved wording and optional...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a634fee12332dd64d5d04054db242e82d5de8028\"\u003e\u003ccode\u003ea634fee\u003c/code\u003e\u003c/a\u003e [Key Vault] Regenerated SecurityDomain SDK with new folder structure and API ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b66e92220423b76fba42bf586034fe08df3b3cfa\"\u003e\u003ccode\u003eb66e922\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-purview with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46980\"\u003e#46980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/209643762d07f7c9c006a7776238b2b03eed34ec\"\u003e\u003ccode\u003e2096437\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-powerbidedicated with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46976\"\u003e#46976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5ba092498b1af30efad1ebabf2b87b587b89692f\"\u003e\u003ccode\u003e5ba0924\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-recoveryservices with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46984\"\u003e#46984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e86ae3a548cc9076570575f2a1aafbb1d82b010b\"\u003e\u003ccode\u003ee86ae3a\u003c/code\u003e\u003c/a\u003e [breaking-changes-tool][Feature] Detect changed return type for functions/met...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ea6c873aef4d08b6ebc4399f38be065d7228a19\"\u003e\u003ccode\u003e2ea6c87\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-operationsmanagement with latest code generator tool (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/3d4f111b3057824b1158156a690ff67cadd9c777\"\u003e\u003ccode\u003e3d4f111\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-peering with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46974\"\u003e#46974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/02335c5c795cb9f5911eaf3ba54998568847592a\"\u003e\u003ccode\u003e02335c5\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-policyinsights with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46975\"\u003e#46975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/74fb2fe3cdcb2a4d4b6f281359526214e9f1ee3d\"\u003e\u003ccode\u003e74fb2fe\u003c/code\u003e\u003c/a\u003e Enable A365 tracing and fix W3C baggage propagation in agentserver (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46754\"\u003e#46754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-keyvault-keys_4.11.0...azure-keyvault-keys_4.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.52.0 to 4.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.54.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(conftest): strip broken nspkg.pth files under py3.15 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3937\"\u003etox-dev/tox#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(packaging): declare tox.pytest deps via a testing extra by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3940\"\u003etox-dev/tox#3940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(schema): cover every replace form in the TOML schema by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3941\"\u003etox-dev/tox#3941\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.1...4.54.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.1...4.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.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(security): harden user-facing logs and untrusted inputs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3924\"\u003etox-dev/tox#3924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(type): correct argparse override signatures for ty 0.0.33 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3932\"\u003etox-dev/tox#3932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: allow deps arrays in TOML schema by \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\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/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.0...4.53.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.0...4.53.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(toml): allow bare range/labeled dicts in env_list by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3923\"\u003etox-dev/tox#3923\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.1...4.53.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.1...4.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.52.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003euse normalize_isa for architecture factor matching by \u003ca href=\"https://github.com/rahuldevikar\"\u003e\u003ccode\u003e@​rahuldevikar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3919\"\u003etox-dev/tox#3919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(pip): invalidate install cache on resolution env var changes by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3921\"\u003etox-dev/tox#3921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.0...4.52.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.0...4.52.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare the runtime dependencies of the \u003ccode\u003etox.pytest\u003c/code\u003e plugin (\u003ccode\u003epytest\u003c/code\u003e, \u003ccode\u003edevpi-process\u003c/code\u003e and \u003ccode\u003epytest-mock\u003c/code\u003e)\nunder a new \u003ccode\u003etesting\u003c/code\u003e extra, so plugin authors can pull them in via \u003ccode\u003etox[testing]\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3938\u003c/code\u003e, :issue:\u003ccode\u003e3940\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExtend the generated TOML schema to cover every \u003ccode\u003ereplace\u003c/code\u003e table form (\u003ccode\u003eenv\u003c/code\u003e, \u003ccode\u003eref\u003c/code\u003e, \u003ccode\u003eposargs\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e,\n\u003ccode\u003eif\u003c/code\u003e), including conditional replacements used inside \u003ccode\u003ecommands\u003c/code\u003e. A guard test asserts the schema stays in sync\nwith the loader implementation so future replace types cannot be added without a corresponding schema entry.\n(:issue:\u003ccode\u003e3939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.1 (2026-05-02)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eBug fixes - 4.53.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eHardening pass on user-facing logging and config parsing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMask secret-looking \u003ccode\u003e--key=value\u003c/code\u003e flag values in command logs (terminal warnings, \u003ccode\u003e.tox/\u0026lt;env\u0026gt;/log/*.log\u003c/code\u003e, and\n\u003ccode\u003eOutcome\u003c/code\u003e \u003ccode\u003e__repr__\u003c/code\u003e) using the same keyword regex previously applied to environment variable values.\u003c/li\u003e\n\u003cli\u003eResolve PEP 723 \u003ccode\u003escript\u003c/code\u003e paths and reject any that escape \u003ccode\u003etox_root\u003c/code\u003e; cap the script read at 5 MiB so a symlink\nto \u003ccode\u003e/dev/zero\u003c/code\u003e cannot exhaust memory.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eeval()\u003c/code\u003e of a constructed \u003ccode\u003eLiteral[...]\u003c/code\u003e string in the CLI parser with a direct\n\u003ccode\u003eLiteral[tuple(action.choices)]\u003c/code\u003e subscript.\u003c/li\u003e\n\u003cli\u003ePass \u003ccode\u003etimeout=30\u003c/code\u003e to \u003ccode\u003eurlopen\u003c/code\u003e when fetching a remote requirements file so a slow or unresponsive mirror cannot\nhang \u003ccode\u003etox\u003c/code\u003e indefinitely. (:issue:\u003ccode\u003e3924\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow the generated TOML schema to validate array values for \u003ccode\u003edeps\u003c/code\u003e. (:issue:\u003ccode\u003e3929\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrect type annotations for \u003ccode\u003eArgumentParser.parse_args\u003c/code\u003e and \u003ccode\u003eparse_known_args\u003c/code\u003e overrides following \u003ccode\u003etypeshed PR [#15613](https://github.com/tox-dev/tox/issues/15613) \u0026lt;https://github.com/python/typeshed/pull/15613\u0026gt;\u003c/code\u003e_, which widened the \u003ccode\u003eargs\u003c/code\u003e parameter from \u003ccode\u003eSequence[str]\u003c/code\u003e\nto \u003ccode\u003eIterable[str]\u003c/code\u003e. The narrower type in tox's overrides violated the Liskov substitution principle and caused\n\u003ccode\u003einvalid-method-override\u003c/code\u003e errors with \u003ccode\u003ety\u003c/code\u003e 0.0.33. Also correct the \u003ccode\u003eoption_spec\u003c/code\u003e annotation in\n\u003ccode\u003edocs/tox_conf.py\u003c/code\u003e to \u003ccode\u003eClassVar[dict[str, Callable[[str], Any]]]\u003c/code\u003e matching the docutils stubs type.\n(:issue:\u003ccode\u003e3932\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.53.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eTOML \u003ccode\u003eenv_list\u003c/code\u003e now accepts bare range dicts (\u003ccode\u003e{ prefix = \u0026quot;3.\u0026quot;, start = 12, stop = 14 }\u003c/code\u003e) and bare labeled dicts\n(\u003ccode\u003e{ ecosystem = [\u0026quot;oci\u0026quot;, \u0026quot;python\u0026quot;] }\u003c/code\u003e) as top-level items, removing the \u003ccode\u003e{ product = [...] }\u003c/code\u003e wrapper when there is\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/tox-dev/tox/commit/1f1fcc7a53665a827d8a304190696c6926ebb2eb\"\u003e\u003ccode\u003e1f1fcc7\u003c/code\u003e\u003c/a\u003e release 4.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b35c8eedaf94906ed0e7938c7526dced550e6fa0\"\u003e\u003ccode\u003eb35c8ee\u003c/code\u003e\u003c/a\u003e 🐛 fix(schema): cover every replace form in the TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3941\"\u003e#3941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6eb5c4f5eec439b3924d6adb3d9d16ea7fc88a20\"\u003e\u003ccode\u003e6eb5c4f\u003c/code\u003e\u003c/a\u003e ✨ feat(packaging): declare tox.pytest deps via a testing extra (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3940\"\u003e#3940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1ad47ddaab21c891f136a9627d1c6cdb6ea655d7\"\u003e\u003ccode\u003e1ad47dd\u003c/code\u003e\u003c/a\u003e 🧪 test(conftest): strip broken nspkg.pth files under py3.15 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3937\"\u003e#3937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dfba9661b10aa5148daf7267b80fec50f4faa9d2\"\u003e\u003ccode\u003edfba966\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3936\"\u003e#3936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/21069af5f5b93774f88c271d5deb1389cd2caf12\"\u003e\u003ccode\u003e21069af\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3933\"\u003e#3933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/2b177917e4c0208c3e380e43f8d32d507180d82e\"\u003e\u003ccode\u003e2b17791\u003c/code\u003e\u003c/a\u003e release 4.53.1\u003c/li\u003e\n\u003cli...\n\n_Description has been truncated_","html_url":"https://github.com/repository-service-tuf/repository-service-tuf-cli/pull/953","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/repository-service-tuf%2Frepository-service-tuf-cli/issues/953","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/953/packages"},{"uuid":"4460212333","node_id":"PR_kwDOSfSDO87cOS0x","number":2,"state":"closed","title":"chore(deps): bump psycopg2 from 2.9.11 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-17T05:34:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T14:41:00.000Z","updated_at":"2026-05-17T05:35:01.000Z","time_to_close":53639,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.11 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.11\u0026new-version=2.9.12)](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/webdox-computer-institute-jalandhar/webdox-django-deploy-digitalocean/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdox-computer-institute-jalandhar%2Fwebdox-django-deploy-digitalocean/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"},{"uuid":"4402443377","node_id":"PR_kwDOFr-Nvs7ZVGmC","number":221,"state":"open","title":"chore(deps): bump the python-minor-patch group across 6 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-07T22:38:56.000Z","updated_at":"2026-05-07T22:40:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":7,"packages":[{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 2 updates in the /anonymizer_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver) and [psycopg2](https://github.com/psycopg/psycopg2).\nBumps the python-minor-patch group with 3 updates in the /collector_module directory: [requests](https://github.com/psf/requests), [pymongo](https://github.com/mongodb/mongo-python-driver) and [urllib3](https://github.com/urllib3/urllib3).\nBumps the python-minor-patch group with 1 update in the /corrector_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 3 updates in the /opendata_collector_module directory: [requests](https://github.com/psf/requests), [pymongo](https://github.com/mongodb/mongo-python-driver) and [urllib3](https://github.com/urllib3/urllib3).\nBumps the python-minor-patch group with 3 updates in the /opendata_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [psycopg2](https://github.com/psycopg/psycopg2) and [django](https://github.com/django/django).\nBumps the python-minor-patch group with 3 updates in the /reports_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [matplotlib](https://github.com/matplotlib/matplotlib) and [pillow](https://github.com/python-pillow/Pillow).\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/...\n\n_Description has been truncated_","html_url":"https://github.com/nordic-institute/X-Road-Metrics/pull/221","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordic-institute%2FX-Road-Metrics/issues/221","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/221/packages"},{"uuid":"4361655590","node_id":"PR_kwDOFr-Nvs7XSGrt","number":220,"state":"open","title":"chore(deps): bump the python-minor-patch group across 6 directories with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-30T22:32:22.000Z","updated_at":"2026-04-30T22:33:27.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":6,"packages":[{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 2 updates in the /anonymizer_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver) and [psycopg2](https://github.com/psycopg/psycopg2).\nBumps the python-minor-patch group with 2 updates in the /collector_module directory: [requests](https://github.com/psf/requests) and [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 1 update in the /corrector_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 2 updates in the /opendata_collector_module directory: [requests](https://github.com/psf/requests) and [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 3 updates in the /opendata_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [psycopg2](https://github.com/psycopg/psycopg2) and [django](https://github.com/django/django).\nBumps the python-minor-patch group with 3 updates in the /reports_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [matplotlib](https://github.com/matplotlib/matplotlib) and [pillow](https://github.com/python-pillow/Pillow).\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by...\n\n_Description has been truncated_","html_url":"https://github.com/nordic-institute/X-Road-Metrics/pull/220","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordic-institute%2FX-Road-Metrics/issues/220","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/220/packages"},{"uuid":"4339256101","node_id":"PR_kwDOHTdvBs7WIng2","number":1590,"state":"closed","title":"deps(ibis): bump the all group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T23:10:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T22:31:53.000Z","updated_at":"2026-05-04T23:10:38.000Z","time_to_close":607123,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":33,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"ibis-framework","old_version":"10.8.0","new_version":"12.0.0","repository_url":"https://github.com/ibis-project/ibis"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.49.2","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.19.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.5.2","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.2","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.13","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"53.0.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"1.0.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.5","new_version":"4.2.6","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.105.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.1","repository_url":"https://github.com/apache/spark"},{"name":"pyopenssl","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"wren-engine","old_version":"0.1.0","new_version":"0.3.0","repository_url":"https://github.com/Canner/wren-engine"},{"name":"matplotlib","old_version":"3.10.8","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.2","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.15.1","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.39.3","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 33 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.13.3` |\n| [ibis-framework](https://github.com/ibis-project/ibis) | `10.8.0` | `12.0.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.49.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.19.0` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.5.2` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.13` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `53.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `1.0.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.5` | `4.2.6` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.105.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.1` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `26.0.0` | `26.1.0` |\n| [wren-engine](https://github.com/Canner/wren-engine) | `0.1.0` | `0.3.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.8` | `3.10.9` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.3` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.49` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.15.12` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.15.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.39.3` | `1.40.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ibis-framework` from 10.8.0 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ibis-project/ibis/releases\"\u003eibis-framework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ibis-project/ibis/blob/main/docs/release_notes_generated.qmd\"\u003eibis-framework's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003eBackend == \u0026quot;some non backend object\u0026quot;\u003c/code\u003e (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a5e7c2298d1582261c0963040a687c3987507c62\"\u003ea5e7c22\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/ibis-project/ibis/commit/01e429b210f19f87e0284bd18fb072df6d3baa59\"\u003e\u003ccode\u003e01e429b\u003c/code\u003e\u003c/a\u003e chore(release): 12.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/537b346aecbaaad232d08ae9a12d38d211ae0926\"\u003e\u003ccode\u003e537b346\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/76c3b63b33f9e6ee2993e2a2875f22ed3e405349\"\u003e\u003ccode\u003e76c3b63\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/da202da06c17a525caf767f0f995f65108a8f3f3\"\u003e\u003ccode\u003eda202da\u003c/code\u003e\u003c/a\u003e chore(deps): update apache/druid docker tag to v36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003e\u003ccode\u003eba0218f\u003c/code\u003e\u003c/a\u003e fix(mysql): use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/a4ef82f82ef103fd233560adce0fbe220481d7ef\"\u003e\u003ccode\u003ea4ef82f\u003c/code\u003e\u003c/a\u003e chore(deps): update aws-actions/configure-aws-credentials action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/601cd8f3dc18c7f8a91aa91319b68aaa181a8a16\"\u003e\u003ccode\u003e601cd8f\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/singlestore-labs/singlestoredb-dev docker tag to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/14c912425af4b318733fdc1460913ccfa4613414\"\u003e\u003ccode\u003e14c9124\u003c/code\u003e\u003c/a\u003e chore(deps): update materialize/materialized docker tag to v26.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/b746edfb660c2b8155debc135884376742cc6929\"\u003e\u003ccode\u003eb746edf\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.30\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/7da40126f178a29d6211f8cfe29421585cff59fc\"\u003e\u003ccode\u003e7da4012\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade ruff, and fix lint violations (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11899\"\u003e#11899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ibis-project/ibis/compare/10.8.0...12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.49.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.49.0.dev0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.48.0...v2.49.0-dev0\"\u003e2.49.0-dev0\u003c/a\u003e (2026-01-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove deprecated rsa dependency (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e98cf69284d3620619a70b54fb0b9533caf11878\"\u003ee98cf69284d3620619a70b54fb0b9533caf11878\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-auth/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2\"\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.7 to 3.11.8\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.8\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\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.8 - 2026-03-31\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/5cbb3d0398a2f42de51210270286fecd798c5d78\"\u003e\u003ccode\u003e5cbb3d0\u003c/code\u003e\u003c/a\u003e 3.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4195d7f263e33076295b75efdcbaf6a55af8674e\"\u003e\u003ccode\u003e4195d7f\u003c/code\u003e\u003c/a\u003e writer::half\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d00641b69410728a735f0855eb1c2843b0a5819b\"\u003e\u003ccode\u003ed00641b\u003c/code\u003e\u003c/a\u003e writer::uuid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c84d9b4ba4853781af943fa5c493e261e2f82b84\"\u003e\u003ccode\u003ec84d9b4\u003c/code\u003e\u003c/a\u003e build and compatibility misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4547234b681fac5e0e0734cf44c21e75f9654e43\"\u003e\u003ccode\u003e4547234\u003c/code\u003e\u003c/a\u003e ffi::numpy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/0d4a5ad1f17a72528ba027554466fdec6580cdeb\"\u003e\u003ccode\u003e0d4a5ad\u003c/code\u003e\u003c/a\u003e datetime PyRef idiom\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/e93a13d372ec956d027e71d023eb534b8445ac85\"\u003e\u003ccode\u003ee93a13d\u003c/code\u003e\u003c/a\u003e Cross-compile avoids maturin v1.12 build-details.json error\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.7...3.11.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.o...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1590","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1590","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1590/packages"},{"uuid":"4333432637","node_id":"PR_kwDOAP9cqc7V1zvm","number":6959,"state":"closed","title":"Bump psycopg2 from 2.9.9 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T08:23:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T06:04:10.000Z","updated_at":"2026-04-27T08:23:43.000Z","time_to_close":8363,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.9","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.12\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.9\u0026new-version=2.9.12)](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/OCHA-DAP/hdx-ckan/pull/6959","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCHA-DAP%2Fhdx-ckan/issues/6959","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6959/packages"},{"uuid":"4333185441","node_id":"PR_kwDOAJbZm87V1BSJ","number":5416,"state":"open","title":"chore(deps): bump psycopg2 from 2.9.11 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T04:55:46.000Z","updated_at":"2026-04-27T05:10:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.11 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.11\u0026new-version=2.9.12)](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/GeotrekCE/Geotrek-admin/pull/5416","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeotrekCE%2FGeotrek-admin/issues/5416","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5416/packages"},{"uuid":"4319715415","node_id":"PR_kwDORzGfAM7VKsQ1","number":22,"state":"open","title":"chore(deps)(deps): Bump the all-python group with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-24T00:44:41.000Z","updated_at":"2026-04-24T00:44:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): Bump","group_name":"all-python","update_count":34,"packages":[{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"46.0.6","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-api-core","old_version":"2.30.0","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-python-client","old_version":"2.193.0","new_version":"2.194.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.49.1","new_version":"2.49.2","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-httplib2","old_version":"0.3.0","new_version":"0.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-oauthlib","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.73.1","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"hf-xet","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/huggingface/xet-core"},{"name":"huggingface-hub","old_version":"1.8.0","new_version":"1.11.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"langchain-core","old_version":"1.2.23","new_version":"1.3.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-text-splitters","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.7.22","new_version":"0.7.34","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.0","new_version":"26.1","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":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pypdf","old_version":"6.9.2","new_version":"6.10.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"sentence-transformers","old_version":"5.3.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"setuptools","old_version":"81.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"transformers","old_version":"5.4.0","new_version":"5.6.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"typer","old_version":"0.24.1","new_version":"0.24.2","repository_url":"https://github.com/fastapi/typer"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python group with 34 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.6` | `46.0.7` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.30.0` | `2.30.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.193.0` | `2.194.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.49.1` | `2.49.2` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.3.0` | `0.3.1` |\n| [google-auth-oauthlib](https://github.com/googleapis/google-cloud-python) | `1.3.0` | `1.3.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.73.1` | `1.74.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.2` | `1.4.3` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.8.0` | `1.11.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.2.23` | `1.3.1` |\n| [langchain-text-splitters](https://github.com/langchain-ai/langchain) | `1.1.1` | `1.1.2` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.22` | `0.7.34` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.3` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.9.2` | `6.10.2` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.3.0` | `5.4.1` |\n| [setuptools](https://github.com/pypa/setuptools) | `81.0.0` | `82.0.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.4.0` | `5.6.2` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.24.2` |\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 `charset-normalizer` from 3.4.6 to 3.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.6...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.3\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.3/\"\u003ehttps://pypi.org/project/click/8.3.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-3\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/1026\"\u003e#1026\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1477\"\u003e#1477\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2775\"\u003e#2775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3298\"\u003e#3298\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3299\"\u003e#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3238\"\u003e#3238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/654\"\u003e#654\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/843\"\u003e#843\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/951\"\u003e#951\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3177\"\u003e#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2836\"\u003e#2836\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2837\"\u003e#2837\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3165\"\u003e#3165\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3262\"\u003e#3262\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3280\"\u003e#3280\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3111\"\u003e#3111\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3189\"\u003e#3189\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3250\"\u003e#3250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2865\"\u003e#2865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2879\"\u003e#2879\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\u003c/a\u003e\u003c/p\u003e\n\u003c!-- 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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n:issue:\u003ccode\u003e1026\u003c/code\u003e :pr:\u003ccode\u003e1477\u003c/code\u003e :pr:\u003ccode\u003e2775\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. :issue:\u003ccode\u003e3298\u003c/code\u003e :pr:\u003ccode\u003e3299\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. :pr:\u003ccode\u003e3238\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n:issue:\u003ccode\u003e3224\u003c/code\u003e :pr:\u003ccode\u003e3240\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n:issue:\u003ccode\u003e654\u003c/code\u003e :issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e843\u003c/code\u003e :pr:\u003ccode\u003e951\u003c/code\u003e :pr:\u003ccode\u003e3235\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. :pr:\u003ccode\u003e3151\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. :pr:\u003ccode\u003e3151\u003c/code\u003e :pr:\u003ccode\u003e3177\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. :issue:\u003ccode\u003e2836\u003c/code\u003e :pr:\u003ccode\u003e2837\u003c/code\u003e :pr:\u003ccode\u003e3165\u003c/code\u003e :pr:\u003ccode\u003e3262\u003c/code\u003e :pr:\u003ccode\u003e3280\u003c/code\u003e\n:pr:\u003ccode\u003e3328\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. :issue:\u003ccode\u003e3111\u003c/code\u003e :pr:\u003ccode\u003e3239\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. :issue:\u003ccode\u003e3189\u003c/code\u003e :pr:\u003ccode\u003e3250\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n:issue:\u003ccode\u003e2865\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. :issue:\u003ccode\u003e2879\u003c/code\u003e :pr:\u003ccode\u003e3248\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\u003e\u003c/li\u003e\n\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/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0\"\u003e\u003ccode\u003ec06d2d0\u003c/code\u003e\u003c/a\u003e Release 8.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c\"\u003e\u003ccode\u003ef1f191e\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081\"\u003e\u003ccode\u003ebb59ba0\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4\"\u003e\u003ccode\u003e4a35225\u003c/code\u003e\u003c/a\u003e Reduce blast-radius of \u003ccode\u003eUNSET\u003c/code\u003e in \u003ccode\u003edefault_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8\"\u003e\u003ccode\u003ec07bb93\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into unset-in-default-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995\"\u003e\u003ccode\u003ec7e1ba8\u003c/code\u003e\u003c/a\u003e Reorder \u003ccode\u003eParameterSource\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda\"\u003e\u003ccode\u003e76552ff\u003c/code\u003e\u003c/a\u003e Show default string in prompt (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c\"\u003e\u003ccode\u003eac5cec5\u003c/code\u003e\u003c/a\u003e Reorder ParameterSource from most to least explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280\"\u003e\u003ccode\u003e8c452e0\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into show-default-string-in-prompt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32\"\u003e\u003ccode\u003e8c95c73\u003c/code\u003e\u003c/a\u003e Reconcile default value passing and default activation (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.3\"\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.6 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\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/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.6...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.25.2 to 3.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/533\"\u003etox-dev/filelock#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/534\"\u003etox-dev/filelock#534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.28.0...3.29.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.28.0...3.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/529\"\u003etox-dev/filelock#529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.27.0...3.28.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.27.0...3.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.27.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/528\"\u003etox-dev/filelock#528\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.26.1...3.27.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.1...3.27.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.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(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling by \u003ca href=\"https://github.com/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\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/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.26.0...3.26.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.0...3.26.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/517\"\u003etox-dev/filelock#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(ci): restore git credentials for release job by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/520\"\u003etox-dev/filelock#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/524\"\u003etox-dev/filelock#524\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.25.2...3.26.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.25.2...3.26.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/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.0 (2026-04-19)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows :pr:\u003ccode\u003e534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency :pr:\u003ccode\u003e533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 :pr:\u003ccode\u003e530\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.28.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again :pr:\u003ccode\u003e529\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.1 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling :pr:\u003ccode\u003e518\u003c/code\u003e - by :user:\u003ccode\u003enaarob\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 :pr:\u003ccode\u003e525\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.0 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking :pr:\u003ccode\u003e524\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e523\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 :pr:\u003ccode\u003e522\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e520\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e519\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e517\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e516\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e514\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.2 (2026-03-11)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(unix): suppress EIO on close in Docker bind mounts :pr:\u003ccode\u003e513\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.1 (2026-03-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e510\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(win): restore best-effort lock file cleanup on release :pr:\u003ccode\u003e511\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/469b47f192b0a9f8c8b795d9b9f57212c716959b\"\u003e\u003ccode\u003e469b47f\u003c/code\u003e\u003c/a\u003e Release 3.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/e85d07281987e0855ba67c03dfdef342ec1097d5\"\u003e\u003ccode\u003ee85d072\u003c/code\u003e\u003c/a\u003e ✨ feat(soft): enable stale lock detection on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5ee1712ced6916b2768812ee378183319339944\"\u003e\u003ccode\u003ef5ee171\u003c/code\u003e\u003c/a\u003e 🐛 fix(async): use single-thread executor for lock consistency (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2a954588cdf462a786835eeb102240ce79fecc8b\"\u003e\u003ccode\u003e2a95458\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/55de20c0819652362881906fa289feff5a323c19\"\u003e\u003ccode\u003e55de20c\u003c/code\u003e\u003c/a\u003e Release 3.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/476b0e4a92776fe530b5d993247342f039004174\"\u003e\u003ccode\u003e476b0e4\u003c/code\u003e\u003c/a\u003e 🐛 fix(ci): unbreak release workflow, publish to PyPI again (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/824713edc32b54efd66566907f97c1238502810e\"\u003e\u003ccode\u003e824713e\u003c/code\u003e\u003c/a\u003e ✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9879de9298db93ffba0a9f58d9de75e9e2a00fc1\"\u003e\u003ccode\u003e9879de9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4cfab498b6916f89be46152efa4a72e9731be98f\"\u003e\u003ccode\u003e4cfab49\u003c/code\u003e\u003c/a\u003e Release 3.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/734c9f26e8107ad24886129fc68865f0b46cf71f\"\u003e\u003ccode\u003e734c9f2\u003c/code\u003e\u003c/a\u003e 🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handli...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.30.0 to 2.30.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-api-core: v2.30.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.30.2...google-api-core-v2.30.3\"\u003ev2.30.3\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eavoid repeated scan of entire venv via packages_distributions() at import time (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16579\"\u003e#16579\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c5728b24\"\u003ec5728b24\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-api-core: v2.30.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.30.1...google-api-core-v2.30.2\"\u003ev2.30.2\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow Protobuf 7.x (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16532\"\u003e#16532\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ffb4b712\"\u003effb4b712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d3d684007a429dc64d8480ceda04658306c52842\"\u003e\u003ccode\u003ed3d6840\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260409T210905Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16604\"\u003e#16604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/442c47a279f02859b18a46e71c469e54c04bebc2\"\u003e\u003ccode\u003e442c47a\u003c/code\u003e\u003c/a\u003e docs: update the list of available APIs (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16571\"\u003e#16571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a58063c2ef1c2f56ed966264f48ebac0b82f0e1b\"\u003e\u003ccode\u003ea58063c\u003c/code\u003e\u003c/a\u003e chore(spanner): block spanner release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16601\"\u003e#16601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f38cd44be98acb9a51c30b47ac9688a44e19c2fb\"\u003e\u003ccode\u003ef38cd44\u003c/code\u003e\u003c/a\u003e feat(pandas-gbq): drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16476\"\u003e#16476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/961eacd039a2583bc019e0502bc4c1c1d88ab410\"\u003e\u003ccode\u003e961eacd\u003c/code\u003e\u003c/a\u003e feat(bigquery-magics): drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16587\"\u003e#16587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/77c1df6dfe9f2fe589d28f04820115053b8259ed\"\u003e\u003ccode\u003e77c1df6\u003c/code\u003e\u003c/a\u003e test: adds storage to list of system tests to run (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16578\"\u003e#16578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6cb5af5227e09e99ee12bb3542374f683b75d4b4\"\u003e\u003ccode\u003e6cb5af5\u003c/code\u003e\u003c/a\u003e chore: add librarian integration for google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16551\"\u003e#16551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/485b03a018f736f048743e3ac3684eca8d817fb4\"\u003e\u003ccode\u003e485b03a\u003c/code\u003e\u003c/a\u003e chore: optimize zonal tests cloning and fix paths (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16581\"\u003e#16581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/70dc6bfc328de37abe96afbf5555e484fdc80058\"\u003e\u003ccode\u003e70dc6bf\u003c/code\u003e\u003c/a\u003e fix(spanner): catch recursion and decode errors in proto parsing to p… (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16561\"\u003e#16561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c5728b24fac3363c10a8cfb315b96d3e6459cf06\"\u003e\u003ccode\u003ec5728b2\u003c/code\u003e\u003c/a\u003e fix(perf): avoid repeated scan of entire venv via packages_distributions() at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.30.0...google-api-core-v2.30.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.193.0 to 2.194.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.194.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.193.0...v2.194.0\"\u003e2.194.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c63837ea9aeb0f90bc3d9bed82272538c65f711d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c63837ea9aeb0f90bc3d9bed82272538c65f711d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dcb4b8996c6f66c6624b5d55762bd3b3b2657188\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dcb4b8996c6f66c6624b5d55762bd3b3b2657188\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/03a174d2847d72f29e830b632dfd286bae061aef\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/03a174d2847d72f29e830b632dfd286bae061aef\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6bcf698be695688ae2b8f495dd8b1facbea36652\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6bcf698be695688ae2b8f495dd8b1facbea36652\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ea9256491a9082b46c10d8d123ac8d6117b5242e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ea9256491a9082b46c10d8d123ac8d6117b5242e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealertcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5dff47cddcdd1ea2a01cb06f4fc51b4615412c1d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5dff47cddcdd1ea2a01cb06f4fc51b4615412c1d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealertcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/70213df06da6dca4e0ca0773f65ecce0057ae588\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/70213df06da6dca4e0ca0773f65ecce0057ae588\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e30b3b574430d6d5786133182a61fe309d5ff8ea\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e30b3b574430d6d5786133182a61fe309d5ff8ea\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8c81a7c312e9eb83779d694d704d9a7ece84960b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8c81a7c312e9eb83779d694d704d9a7ece84960b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigee:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8a3ff159fe52d11541cd3c7081f27d3a92ec157c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8a3ff159fe52d11541cd3c7081f27d3a92ec157c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapikeys:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/cec06010ccf58100aa875b5a82b5a4dc6119e3d3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/cec06010ccf58100aa875b5a82b5a4dc6119e3d3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eappengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7935e3c7858b5273941d95507f1c5f395bb73dfd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7935e3c7858b5273941d95507f1c5f395bb73dfd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eartifactregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2904124c55cfbad06dd531294d19df9b03ffd08b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2904124c55cfbad06dd531294d19df9b03ffd08b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3872d47f6e3077b77ca5e623d683aa4c9290826b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3872d47f6e3077b77ca5e623d683aa4c9290826b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6e98d8bf562dcaf4628db21f8572b3fcd4333991\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6e98d8bf562dcaf4628db21f8572b3fcd4333991\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquerydatatransfer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5feddee128ec217348d270c82dd2d8049f175f04\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5feddee128ec217348d270c82dd2d8049f175f04\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ff91f076330299320b29103467078bcaf5bbc4c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ff91f076330299320b29103467078bcaf5bbc4c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigtableadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/45c3a5686de4f12a2b9cbc73dca8be5a8837a4ac\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/45c3a5686de4f12a2b9cbc73dca8be5a8837a4ac\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigtableadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/84f19284846c9f3f230bac672bb2812ded4d891a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/84f19284846c9f3f230bac672bb2812ded4d891a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a1faed1dbb4c75c36f6f75209bc3d8e948030283\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a1faed1dbb4c75c36f6f75209bc3d8e948030283\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f3eca84fe126d4d004da30e84d2f854452c838e8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f3eca84fe126d4d004da30e84d2f854452c838e8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f6cf5d2801b1bb0cffbd8d078d97287950bb9e88\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f6cf5d2801b1bb0cffbd8d078d97287950bb9e88\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbilling:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1dcb981e3521fd102a537203e557a46cb77b78db\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1dcb981e3521fd102a537203e557a46cb77b78db\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbuild:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9a5a1cd8b87c0a8cee8e2fb07c9df4f4088e59cd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9a5a1cd8b87c0a8cee8e2fb07c9df4f4088e59cd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclouddeploy:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/92270421dad5b1cdd1de7c9bed8a3570c396ca93\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/92270421dad5b1cdd1de7c9bed8a3570c396ca93\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f3f0ad25b33f0811a524a414f93a80dc9b2f9a32\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f3f0ad25b33f0811a524a414f93a80dc9b2f9a32\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudsearch:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a26acd7ac001905649b2c913129fb3ed7a0ed567\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a26acd7ac001905649b2c913129fb3ed7a0ed567\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudtasks:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2af118b3c0fa958e8954f7fced6e2218214a66c0\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2af118b3c0fa958e8954f7fced6e2218214a66c0\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8e83dc996f64254ce826d59d32abba9ce22f7789\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8e83dc996f64254ce826d59d32abba9ce22f7789\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/da8c35f88c21181d8d46ed699e6166062b3250f4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/da8c35f88c21181d8d46ed699e6166062b3250f4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econfig:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b4fa3f2f6e1c1437270e2fd4cdb5d77be085606a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b4fa3f2f6e1c1437270e2fd4cdb5d77be085606a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/78dece310ddbc068cafb7877ea7b9c51ba00465d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/78dece310ddbc068cafb7877ea7b9c51ba00465d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/76bc2b43080e4eb98b149869c43c383e4133c884\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/76bc2b43080e4eb98b149869c43c383e4133c884\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/03b49af4aa6dbd4b0b34c1aa3db5a607c660f37a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/03b49af4aa6dbd4b0b34c1aa3db5a607c660f37a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b1c7a26316b7d00752c4012ede0d65632fd63faf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b1c7a26316b7d00752c4012ede0d65632fd63faf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0b40ba83f99859afd3a58ebcc20bfda6bc484b7f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0b40ba83f99859afd3a58ebcc20bfda6bc484b7f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/120be612dc45186c77091d671c167deb73c0740f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/120be612dc45186c77091d671c167deb73c0740f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d47e46693a4d760502e0f576884ef01c8836b45c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d47e46693a4d760502e0f576884ef01c8836b45c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/820112c5fdea8506ed88cc149e558e6a2a1a585d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/820112c5fdea8506ed88cc149e558e6a2a1a585d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8ccc149637c65d8e5ed1a89ee5ca43c029b02fc4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8ccc149637c65d8e5ed1a89ee5ca43c029b02fc4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b260d854ef3f5dd67d37b29c91df2bc3ffc35693\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b260d854ef3f5dd67d37b29c91df2bc3ffc35693\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatamigration:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/308cc75c64f69e5d361b2d518638588b35a95279\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/308cc75c64f69e5d361b2d518638588b35a95279\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataplex:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d4a71f77594865f4ca7d6793e4d886251b7ac943\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d4a71f77594865f4ca7d6793e4d886251b7ac943\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/10436ecbe9201c8af9ad235a05d77e5e05e6462e\"\u003e\u003ccode\u003e10436ec\u003c/code\u003e\u003c/a\u003e chore(main): release 2.194.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e\u003ccode\u003e2d0b3b1\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2737\"\u003e#2737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e\u003ccode\u003e4b1cfc7\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2735\"\u003e#2735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/a82af07571da6c3c0ccfd2d9cf234785c3783e57\"\u003e\u003ccode\u003ea82af07\u003c/code\u003e\u003c/a\u003e chore: Migrate gsutil usage to gcloud storage (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2705\"\u003e#2705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003e\u003ccode\u003eb6b55b6\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2732\"\u003e#2732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.193.0...v2.194.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.49.1 to 2.49.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth-httplib2` from 0.3.0 to 0.3.1\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/4e80530190d3e3d7d0dec26b8daf97c2db15c2df\"\u003e\u003ccode\u003e4e80530\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16193\"\u003e#16193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f8d933cfeca182e00eb589da2ab0df61579c6f1\"\u003e\u003ccode\u003e0f8d933\u003c/code\u003e\u003c/a\u003e chore: add gapic-generator integration test presubmit (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16465\"\u003e#16465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ab44f7e4224b554e9365aafbd4ecb559ed975aa6\"\u003e\u003ccode\u003eab44f7e\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency requests to v2.33.0 [security] (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16464\"\u003e#16464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/943a979f14b1f39608cdb2658823f087a599e418\"\u003e\u003ccode\u003e943a979\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/sphinx-docfx-yaml into package...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8c6703da295ed30200bb38f637b745b64f34d690\"\u003e\u003ccode\u003e8c6703d\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/gapic-generator-python into pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e3731d58d5371f166e75742e257e2524d21e83cb\"\u003e\u003ccode\u003ee3731d5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into migration.gapic-generator-python.migration.2026-03-2...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/20f57241d9f690abc31c1a19ee5a0d33c667f300\"\u003e\u003ccode\u003e20f5724\u003c/code\u003e\u003c/a\u003e Trigger CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/76a8b58e1f73328243ff838a4652bdcc4ead31b5\"\u003e\u003ccode\u003e76a8b58\u003c/code\u003e\u003c/a\u003e chore: skip spanner django presubmits using dorny filter (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16196\"\u003e#16196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/46ee8a094fdb121f49fa600f91d1b8c0818a9253\"\u003e\u003ccode\u003e46ee8a0\u003c/code\u003e\u003c/a\u003e fix presubmit\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-httplib2-v0.3.0...google-auth-httplib2-v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth-oauthlib` from 1.3.0 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth-oauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/gcp-sphinx-docfx-yaml/CHANGELOG.md\"\u003egoogle-auth-oauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://www.github.com/googleapis/sphinx-docfx-yaml/compare/v1.3.0...v1.3.1\"\u003e1.3.1\u003c/a\u003e (2021-11-15)\u003c/h3\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve square bracketed references (\u003ca href=\"https://redirect.github.com/googleapis/sphinx-docfx-yaml/issues/146\"\u003e#146\u003c/a\u003e) (\u003ca href=\"https://www.github.com/googleapis/sphinx-docfx-yaml/commit/fa049ace9d14e1f9993313983ad3426ff041672d\"\u003efa049ac\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4e80530190d3e3d7d0dec26b8daf97c2db15c2df\"\u003e\u003ccode\u003e4e80530\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16193\"\u003e#16193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ab44f7e4224b554e9365aafbd4ecb559ed975aa6\"\u003e\u003ccode\u003eab44f7e\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency requests to v2.33.0 [security] (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16464\"\u003e#16464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/943a979f14b1f39608cdb2658823f087a599e418\"\u003e\u003ccode\u003e943a979\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/sphinx-docfx-yaml into package...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e3731d58d5371f166e75742e257e2524d21e83cb\"\u003e\u003ccode\u003ee3731d5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into migration.gapic-generator-python.migration.2026-03-2...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c23b0670def4d049a81e073260cdd664c909e358\"\u003e\u003ccode\u003ec23b067\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c174901a7dfa72268191a0212e565c7baa5b3658\"\u003e\u003ccode\u003ec174901\u003c/code\u003e\u003c/a\u003e add placeholder for system test nox session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-oauthlib-v1.3.0...google-auth-oauthlib-v1.3.1\"\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.73.1 to 1.74.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.74.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.73.1...googleapis-common-protos-v1.74.0\"\u003ev1.74.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003epublish new error reasons (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd origin to AttributeContext.Request (PiperOrigin-RevId: 892442206) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epublish client batch config schema (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eupdate API common type documentation (PiperOrigin-RevId: 890591600) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix documentation formatting (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate various comments (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate SelectiveGapicGeneration usage doc (PiperOrigin-RevId: 892649773) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate license year (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/79a06514c46129c4b3b303363ead0be592131596\"\u003e\u003ccode\u003e79a0651\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260402T161941Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16539\"\u003e#16539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4c541cf2a364ef7ba39bc48c0a6a063a9334d31a\"\u003e\u003ccode\u003e4c541cf\u003c/code\u003e\u003c/a\u003e fix: allow redis 7.x (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16533\"\u003e#16533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ffb4b712121d04a38399e0bd3dc9773e96798564\"\u003e\u003ccode\u003effb4b71\u003c/code\u003e\u003c/a\u003e fix: allow Protobuf 7.x (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16532\"\u003e#16532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d49690d87659c18a8eaeb32d83ac1fea8158304a\"\u003e\u003ccode\u003ed49690d\u003c/code\u003e\u003c/a\u003e chore: enable python-crc32c kokoro presubmits (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16524\"\u003e#16524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/beaf708556e65b8046d7c3b860ed734b694a7613\"\u003e\u003ccode\u003ebeaf708\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/python-crc32c into packages/go...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003e\u003ccode\u003ec36aa61\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260401T195653Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16513\"\u003e#16513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0c877650196784d1c262d65b58b086c66d2d5502\"\u003e\u003ccode\u003e0c87765\u003c/code\u003e\u003c/a\u003e chore: bypass kokoro presubmits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d0610bfd7bae168bb6e21ee66b51c85397e8f97b\"\u003e\u003ccode\u003ed0610bf\u003c/code\u003e\u003c/a\u003e tests: temporarily skip system test to unblock code migration as per offline ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c75...\n\n_Description has been truncated_","html_url":"https://github.com/GridWorldOrganization/GridWorldRAG/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GridWorldOrganization%2FGridWorldRAG/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"},{"uuid":"4312485443","node_id":"PR_kwDORhP9Uc7UzE3r","number":65,"state":"closed","title":"build(deps): Update psycopg2 requirement from \u003e=2.9.9 to \u003e=2.9.12 in /sidecar","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-28T00:02:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T00:01:46.000Z","updated_at":"2026-04-28T00:02:30.000Z","time_to_close":432035,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Update","packages":[{"name":"psycopg2","old_version":"\u003e=2.9.9","new_version":"\u003e=2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":"/sidecar","ecosystem":"pip"},"body":"Updates the requirements on [psycopg2](https://github.com/psycopg/psycopg2) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/cobriensr/Options-Strike-Calculator/pull/65","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cobriensr%2FOptions-Strike-Calculator/issues/65","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/65/packages"},{"uuid":"4304778570","node_id":"PR_kwDOFnDCfc7UaIaN","number":659,"state":"open","title":"Bump psycopg2 from 2.9.11 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-21T19:14:14.000Z","updated_at":"2026-05-08T20:29:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.11 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/jan-janssen/shared-conda-environment/pull/659","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jan-janssen%2Fshared-conda-environment/issues/659","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/659/packages"},{"uuid":"4299520293","node_id":"PR_kwDOGwKG_s7UJIiY","number":324,"state":"open","title":"Bump psycopg2 from 2.9.3 to 2.9.12","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-21T00:35:33.000Z","updated_at":"2026-04-21T00:35:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.3","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.3 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commits\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.3\u0026new-version=2.9.12)](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/dzaslavskiy/identity-idva-gpo/pull/324","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzaslavskiy%2Fidentity-idva-gpo/issues/324","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/324/packages"},{"uuid":"4242119517","node_id":"PR_kwDOR_eNC87Rlo4q","number":4,"state":"closed","title":"Bump psycopg2 from 2.9.10 to 2.9.11","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T21:16:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T22:59:30.000Z","updated_at":"2026-04-21T21:16:55.000Z","time_to_close":944243,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.10 to 2.9.11.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.10\u0026new-version=2.9.11)](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/preklis/cms-beu/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/preklis%2Fcms-beu/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4006095093","node_id":"PR_kwDOI9fKOs7HEjGb","number":43,"state":"closed","title":"build(deps): Bump the all-django-dependencies group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-01T03:14:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T03:14:33.000Z","updated_at":"2026-04-01T03:14:48.000Z","time_to_close":2678413,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"all-django-dependencies","update_count":19,"packages":[{"name":"django","old_version":"5.1.8","new_version":"5.2.11","repository_url":"https://github.com/django/django"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"django-tailwind","old_version":"4.0.1","new_version":"4.4.2","repository_url":"https://github.com/timonweb/django-tailwind"},{"name":"django-browser-reload","old_version":"1.18.0","new_version":"1.21.0","repository_url":"https://github.com/adamchainz/django-browser-reload"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"django-environ","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/joke2k/django-environ"},{"name":"django-admin-interface","old_version":"0.30.0","new_version":"0.32.0","repository_url":"https://github.com/fabiocaccamo/django-admin-interface"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-debug-toolbar","old_version":"5.1.0","new_version":"6.2.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-import-export","old_version":"4.3.7","new_version":"4.4.0","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.31.0","new_version":"0.33.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"django-simple-history","old_version":"3.8.0","new_version":"3.11.0","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"djhtml","old_version":"3.0.7","new_version":"3.0.10","repository_url":"https://github.com/rtts/djhtml"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-django","old_version":"4.11.1","new_version":"4.12.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"pylint-django","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/pylint-dev/pylint-django"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-django-dependencies group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.8` | `5.2.11` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.1` |\n| [django-tailwind](https://github.com/timonweb/django-tailwind) | `4.0.1` | `4.4.2` |\n| [django-browser-reload](https://github.com/adamchainz/django-browser-reload) | `1.18.0` | `1.21.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.2.1` |\n| [django-environ](https://github.com/joke2k/django-environ) | `0.12.0` | `0.13.0` |\n| [django-admin-interface](https://github.com/fabiocaccamo/django-admin-interface) | `0.30.0` | `0.32.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `5.1.0` | `6.2.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.3.7` | `4.4.0` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.31.0` | `0.33.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.8.0` | `3.11.0` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [djhtml](https://github.com/rtts/djhtml) | `3.0.7` | `3.0.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.11.1` | `4.12.0` |\n| [pylint-django](https://github.com/pylint-dev/pylint-django) | `2.6.1` | `2.7.0` |\n\n\nUpdates `django` from 5.1.8 to 5.2.11\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4a96a199bbb1d3dca45ea16bf643216e179cb8bc\"\u003e\u003ccode\u003e4a96a19\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.11 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ab0ad8d39555292b55123adeac57ed64c776f8d9\"\u003e\u003ccode\u003eab0ad8d\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2026-1312 -- Raised ValueError when FilteredRelation aliases...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e863ee273c6553e9b6fa4960a17acb535851857b\"\u003e\u003ccode\u003ee863ee2\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1312 -- Protected order_by() from SQL injection via al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3e68ccdc11c127758745ddf0b4954990b14892bc\"\u003e\u003ccode\u003e3e68ccd\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1287 -- Protected against SQL injection in column alia...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9f2ada875bbee62ac46032e38ddb22755d67ae5a\"\u003e\u003ccode\u003e9f2ada8\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1285 -- Mitigated potential DoS in django.utils.text.T...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/17a1d64a58ef24c0c3b78d66d86f5415075f18f0\"\u003e\u003ccode\u003e17a1d64\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1207 -- Prevented SQL injections in RasterField lookup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1ba90069c12836db46981bdf75b0e661db5849ce\"\u003e\u003ccode\u003e1ba9006\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-14550 -- Optimized repeated header parsing in ASGI req...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/184e38ab0a061c365f5775676a074796d8abd02f\"\u003e\u003ccode\u003e184e38a\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-13473 -- Standardized timing of check_password() in mo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d8c551d21459b260f50906f1e48bdf381e620533\"\u003e\u003ccode\u003ed8c551d\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.11 and 4.2.28.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3ea659dc1b8d72d3cab2de17d28cd9d2d06d6eed\"\u003e\u003ccode\u003e3ea659d\u003c/code\u003e\u003c/a\u003e [5.2.x] Clarified regression nature of data loss bug in docs/releases/5.2.10....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.8...5.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.2.1 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.2.1...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-tailwind` from 4.0.1 to 4.4.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/timonweb/django-tailwind/blob/master/CHANGELOG.md\"\u003edjango-tailwind's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.4.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue with CSS path configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue when \u003ccode\u003eraw_input\u003c/code\u003e is used instead of \u003ccode\u003einput\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStandalone Tailwind CSS binary support via \u003ca href=\"https://github.com/timonweb/pytailwindcss\"\u003epytailwindcss\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_USE_STANDALONE_BINARY\u003c/code\u003e setting to force standalone binary mode;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_STANDALONE_BINARY_VERSION\u003c/code\u003e setting to control standalone binary version (default: \u003ccode\u003ev4.1.16\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eAutomatic detection of standalone vs npm-based installations (checks for \u003ccode\u003epackage.json\u003c/code\u003e presence);\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eapp_template_v4_standalone/\u003c/code\u003e cookiecutter template for standalone binary apps;\u003c/li\u003e\n\u003cli\u003eUpdates documentation;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.js\u003c/code\u003e is now optional when using standalone binary mode;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaces Poetry with UV for dependency management;\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eextract_host_and_port\u003c/code\u003e to support standalone port numbers (e.g., \u003ccode\u003epython manage.py runserver 55555\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eUpdates tox configuration to use \u003ccode\u003edev\u003c/code\u003e dependency group;\u003c/li\u003e\n\u003cli\u003eRemoves Docker instructions from documentation;\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.10;\u003c/li\u003e\n\u003cli\u003eEnsures Django 6.0 support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003emanage.py tailwind plugin_install\u003c/code\u003e command to manage Tailwind CSS plugins;\u003c/li\u003e\n\u003cli\u003eAdds optional daisyUI support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003edev\u003c/code\u003e command that starts Django development server and Tailwind watcher simultaneously;\u003c/li\u003e\n\u003cli\u003eAutomatically installs Honcho if not available when using \u003ccode\u003edev\u003c/code\u003e command;\u003c/li\u003e\n\u003cli\u003eCreates \u003ccode\u003eProcfile.tailwind\u003c/code\u003e for customizable process management;\u003c/li\u003e\n\u003cli\u003eUpdates documentation with \u003ccode\u003edev\u003c/code\u003e command usage;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Tailwind CSS v4+;\u003c/li\u003e\n\u003cli\u003eSets Tailwind CSS v4+ as the default version, with the option to use v3.x via \u003ccode\u003e--tailwind-version 3\u003c/code\u003e flag;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBrings Python 3.10 support back;\u003c/li\u003e\n\u003cli\u003eAdds Python 3.13 support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/dfb5a0004cc06ba9106fa0e15f479dabaa8a0f29\"\u003e\u003ccode\u003edfb5a00\u003c/code\u003e\u003c/a\u003e Releases 4.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/216c9e9b65737711748a6085071b040c9684c137\"\u003e\u003ccode\u003e216c9e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/244\"\u003e#244\u003c/a\u003e from synthghost/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/2b5a013b2310b9e101df93a481512e721e868797\"\u003e\u003ccode\u003e2b5a013\u003c/code\u003e\u003c/a\u003e Fix settings-based CSS path configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/bfd4250f812a4bb286a29ce1a0dd5e758709201e\"\u003e\u003ccode\u003ebfd4250\u003c/code\u003e\u003c/a\u003e Add Star History section to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4c8ef987284a9dc3bd837d980740efabb4088287\"\u003e\u003ccode\u003e4c8ef98\u003c/code\u003e\u003c/a\u003e Delete manage.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4b0e42826fbeeb8a2a9df24f8ec911d61fdd7003\"\u003e\u003ccode\u003e4b0e428\u003c/code\u003e\u003c/a\u003e Releases 4.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/46fb9a99f278582b4c9f4a8abb027c442e5e26df\"\u003e\u003ccode\u003e46fb9a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/241\"\u003e#241\u003c/a\u003e from evangeloskp/fix-distlib-import-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/34150e8de77ed499c98c0352e15030691b2bf623\"\u003e\u003ccode\u003e34150e8\u003c/code\u003e\u003c/a\u003e Fix ImportError by replacing distlib.compat.raw_input with built-in input()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/91c509a11d10f35997fcc2bce8b9241577831f68\"\u003e\u003ccode\u003e91c509a\u003c/code\u003e\u003c/a\u003e Update CI badge in README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4ac8150297c0b655f368f98faf9be8ec619b50f0\"\u003e\u003ccode\u003e4ac8150\u003c/code\u003e\u003c/a\u003e Releases 4.4.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/timonweb/django-tailwind/compare/4.0.1...4.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-browser-reload` from 1.18.0 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-browser-reload/blob/main/CHANGELOG.rst\"\u003edjango-browser-reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.0 (2025-09-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Content Security Policy (CSP) nonce support to the listener script tag, in both the middleware and the Jinja template tag.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#340](https://github.com/adamchainz/django-browser-reload/issues/340) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/340\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.20.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.19.0 (2025-09-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the django-jinja template backend.\u003c/p\u003e\n\u003cp\u003eThanks to Jake Howard in \u003ccode\u003ePR [#309](https://github.com/adamchainz/django-browser-reload/issues/309) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/309\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d21e7d8a04381dedf0047b11f1cbefab02dc2567\"\u003e\u003ccode\u003ed21e7d8\u003c/code\u003e\u003c/a\u003e Version 1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/41835a58b7b68e0e329ff1a3b9b127342675260c\"\u003e\u003ccode\u003e41835a5\u003c/code\u003e\u003c/a\u003e Add CSP nonce support (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/3571cb8b20440020499f1bfd30bed2cef5a84b62\"\u003e\u003ccode\u003e3571cb8\u003c/code\u003e\u003c/a\u003e Improve usage and description\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/1061afd357cabf6c1e674b6581d5057d82e7983c\"\u003e\u003ccode\u003e1061afd\u003c/code\u003e\u003c/a\u003e Promote django-watchfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ec228460b7756eab7e9488b1aa59824cf8646997\"\u003e\u003ccode\u003eec22846\u003c/code\u003e\u003c/a\u003e Remove outdated ASGI note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/10301ed78fe5e7a268bfd155f45fa0d3703fc0f9\"\u003e\u003ccode\u003e10301ed\u003c/code\u003e\u003c/a\u003e Improve tagline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d944e3371e43ad4d7db0baa47f1a2c050bc42e32\"\u003e\u003ccode\u003ed944e33\u003c/code\u003e\u003c/a\u003e Version 1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/b77a1dcd7bc22705b65d4b553a30e10fab536223\"\u003e\u003ccode\u003eb77a1dc\u003c/code\u003e\u003c/a\u003e Correct testing of Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/9794a774f5bf2c7b18a7adbb420fdea709a7b39b\"\u003e\u003ccode\u003e9794a77\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ca5fbd0e15f19e0ee0ec67963035a0bb3c7a5b5a\"\u003e\u003ccode\u003eca5fbd0\u003c/code\u003e\u003c/a\u003e Version 1.19.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-browser-reload/compare/1.18.0...1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` 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/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env from FIFOs (Unix) by \u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) by \u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini by \u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml by \u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\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/theskumar/python-dotenv/commit/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-environ` from 0.12.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/django-environ/releases\"\u003edjango-environ's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ccode\u003ev0.13.0\u003c/code\u003e_ - 18-February-2026\u003c/h2\u003e\n\u003cp\u003eAdded\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded optional warnings when defaults are used\n\u003ccode\u003e[#582](https://github.com/joke2k/django-environ/issues/582) \u0026lt;https://github.com/joke2k/django-environ/pull/582\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echoices\u003c/code\u003e argument support for value validation in \u003ccode\u003eEnv.str(...)\u003c/code\u003e\n\u003ccode\u003e[#555](https://github.com/joke2k/django-environ/issues/555) \u0026lt;https://github.com/joke2k/django-environ/pull/555\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded Valkey support via \u003ccode\u003evalkey://\u003c/code\u003e and \u003ccode\u003evalkeys://\u003c/code\u003e cache URL schemes\n\u003ccode\u003e[#554](https://github.com/joke2k/django-environ/issues/554) \u0026lt;https://github.com/joke2k/django-environ/pull/554\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003erediss://\u003c/code\u003e scheme in channels URL parsing\n\u003ccode\u003e[#573](https://github.com/joke2k/django-environ/issues/573) \u0026lt;https://github.com/joke2k/django-environ/pull/573\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded django-prometheus database backend aliases to DB URL parsing schemes\n\u003ccode\u003e[#559](https://github.com/joke2k/django-environ/issues/559) \u0026lt;https://github.com/joke2k/django-environ/pull/559\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\n+++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeclared support for Python 3.14\n\u003ccode\u003e[#580](https://github.com/joke2k/django-environ/issues/580) \u0026lt;https://github.com/joke2k/django-environ/pull/580\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeclared support for Django 5.2 and Django 6.0\n\u003ccode\u003e[#578](https://github.com/joke2k/django-environ/issues/578) \u0026lt;https://github.com/joke2k/django-environ/pull/578\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixed\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hint coverage and related lint issues\n\u003ccode\u003e[#546](https://github.com/joke2k/django-environ/issues/546) \u0026lt;https://github.com/joke2k/django-environ/pull/546\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed typos in the FAQ page\n\u003ccode\u003e[#445](https://github.com/joke2k/django-environ/issues/445) \u0026lt;https://github.com/joke2k/django-environ/pull/445\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.1\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed PostgreSQL cluster URL parsing with bracketed IPv6 hosts in recent\nPython versions, preventing failures in runtime URL parsing and related\nregression tests\n\u003ccode\u003e[#574](https://github.com/joke2k/django-environ/issues/574) \u0026lt;https://github.com/joke2k/django-environ/issues/574\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed debug logging in \u003ccode\u003eEnv.get_value()\u003c/code\u003e to avoid evaluating lazy default\nobjects when DEBUG logging is enabled\n\u003ccode\u003e[#571](https://github.com/joke2k/django-environ/issues/571) \u0026lt;https://github.com/joke2k/django-environ/issues/571\u0026gt;\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/joke2k/django-environ/blob/develop/CHANGELOG.rst\"\u003edjango-environ's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev0.13.0\u003c/code\u003e_ - 18-February-2026\u003c/h2\u003e\n\u003cp\u003eAdded\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded optional warnings when defaults are used\n\u003ccode\u003e[#582](https://github.com/joke2k/django-environ/issues/582) \u0026lt;https://github.com/joke2k/django-environ/pull/582\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echoices\u003c/code\u003e argument support for value validation in \u003ccode\u003eEnv.str(...)\u003c/code\u003e\n\u003ccode\u003e[#555](https://github.com/joke2k/django-environ/issues/555) \u0026lt;https://github.com/joke2k/django-environ/pull/555\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded Valkey support via \u003ccode\u003evalkey://\u003c/code\u003e and \u003ccode\u003evalkeys://\u003c/code\u003e cache URL schemes\n\u003ccode\u003e[#554](https://github.com/joke2k/django-environ/issues/554) \u0026lt;https://github.com/joke2k/django-environ/pull/554\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003erediss://\u003c/code\u003e scheme in channels URL parsing\n\u003ccode\u003e[#573](https://github.com/joke2k/django-environ/issues/573) \u0026lt;https://github.com/joke2k/django-environ/pull/573\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded django-prometheus database backend aliases to DB URL parsing schemes\n\u003ccode\u003e[#559](https://github.com/joke2k/django-environ/issues/559) \u0026lt;https://github.com/joke2k/django-environ/pull/559\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\n+++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeclared support for Python 3.14\n\u003ccode\u003e[#580](https://github.com/joke2k/django-environ/issues/580) \u0026lt;https://github.com/joke2k/django-environ/pull/581\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeclared support for Django 5.2 and Django 6.0\n\u003ccode\u003e[#578](https://github.com/joke2k/django-environ/issues/578) \u0026lt;https://github.com/joke2k/django-environ/pull/578\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixed\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hint coverage and related lint issues\n\u003ccode\u003e[#546](https://github.com/joke2k/django-environ/issues/546) \u0026lt;https://github.com/joke2k/django-environ/pull/546\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed typos in the FAQ page\n\u003ccode\u003e[#445](https://github.com/joke2k/django-environ/issues/445) \u0026lt;https://github.com/joke2k/django-environ/pull/445\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003ev0.12.1\u003c/code\u003e_ - 13-February-2026\u003c/h2\u003e\n\u003cp\u003eFixed\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed PostgreSQL cluster URL parsing with bracketed IPv6 hosts in recent\nPython versions, preventing failures in runtime URL parsing and related\nregression tests\n\u003ccode\u003e[#574](https://github.com/joke2k/django-environ/issues/574) \u0026lt;https://github.com/joke2k/django-environ/issues/574\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed debug logging in \u003ccode\u003eEnv.get_value()\u003c/code\u003e to avoid evaluating lazy default\nobjects when DEBUG logging is enabled\n\u003ccode\u003e[#571](https://github.com/joke2k/django-environ/issues/571) \u0026lt;https://github.com/joke2k/django-environ/issues/571\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/00746d0f63d37dcafad527ea7a820a46f8fb81e0\"\u003e\u003ccode\u003e00746d0\u003c/code\u003e\u003c/a\u003e docs: add Django 5.2 and 6.0 support to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/d1f115932aed9d21c38c898c3ae4b4b678cd210d\"\u003e\u003ccode\u003ed1f1159\u003c/code\u003e\u003c/a\u003e Release 0.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/d82e361ddb7ffdad01451623d806d402c3a657fd\"\u003e\u003ccode\u003ed82e361\u003c/code\u003e\u003c/a\u003e Add optional warnings when defaults are used (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/a78f7c888d840c1b1903371f2424ee641906c923\"\u003e\u003ccode\u003ea78f7c8\u003c/code\u003e\u003c/a\u003e Fixed some typos in the FAQ page (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/445\"\u003e#445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/24b299e002f3bcc14983eef4be770edb143338dc\"\u003e\u003ccode\u003e24b299e\u003c/code\u003e\u003c/a\u003e Feature/add choice parameter and raise an exception if fetched value is not w...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/c4414130f4cf11704e9f1ea446c68074f69c0b54\"\u003e\u003ccode\u003ec441413\u003c/code\u003e\u003c/a\u003e Add django-prometheus database backends to DB_SCHEMES (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/559\"\u003e#559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/98a0aad4c10e789d84e572a3f97a5a9cf9080973\"\u003e\u003ccode\u003e98a0aad\u003c/code\u003e\u003c/a\u003e Fix lint issues in environ type hints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/f4e77e41e629ae8631da9582241f7db527085699\"\u003e\u003ccode\u003ef4e77e4\u003c/code\u003e\u003c/a\u003e feat(cache): add valkey and valkeys as allowed schemes (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/dd4d308baea427b5e820a8ac326b0d63e557c956\"\u003e\u003ccode\u003edd4d308\u003c/code\u003e\u003c/a\u003e Add type hints (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/3137c4f733f90a14a12da9fc252d446357190537\"\u003e\u003ccode\u003e3137c4f\u003c/code\u003e\u003c/a\u003e Support lower case options for Django Redis cache backend (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/django-environ/compare/v0.12.0...v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-admin-interface` from 0.30.0 to 0.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases\"\u003edjango-admin-interface's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.30.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/blob/main/CHANGELOG.md\"\u003edjango-admin-interface's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.32.0\"\u003e0.32.0\u003c/a\u003e - 2025-12-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.1\"\u003e0.31.1\u003c/a\u003e - 2025-12-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.0\"\u003e0.31.0\u003c/a\u003e - 2025-11-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.30.1\"\u003e0.30.1\u003c/a\u003e - 2025-06-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/commit/5d95d802f4085b1215cc6a62fa6d8458b7339c3b\"\u003e\u003ccode\u003e5d95d80\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/2117573b233cc989e340bdfb3ea5b9977fe99f7e\"\u003e\u003ccode\u003e2117573\u003c/code\u003e\u003c/a\u003e Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/d45c09e62a8654a3f90bf3fc9fa96d413fc58afc\"\u003e\u003ccode\u003ed45c09e\u003c/code\u003e\u003c/a\u003e Update .pre-commit-config.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fea108a89016484fcf0fd90693aa73382a6edbdb\"\u003e\u003ccode\u003efea108a\u003c/code\u003e\u003c/a\u003e Update FUNDING.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/052f8e60be23463dc8e98e8d90f08ba321d62f8e\"\u003e\u003ccode\u003e052f8e6\u003c/code\u003e\u003c/a\u003e Upgrade \u003ccode\u003ecreate-matrix-action\u003c/code\u003e version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8474b3313448ca48dffdd66e9b014becc81cd423\"\u003e\u003ccode\u003e8474b33\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/1cbb618ac8cd3a1ad67dcff4fcea9528411dc1d6\"\u003e\u003ccode\u003e1cbb618\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/bcb6053e8390883ee1375ae7d44d3024f55d3538\"\u003e\u003ccode\u003ebcb6053\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8de832489e40d0f5e44c2eb0f1cdb024b21ae9c1\"\u003e\u003ccode\u003e8de8324\u003c/code\u003e\u003c/a\u003e Update translations.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fd9fa790a6576b15b8fc6c466ce72332eab33fab\"\u003e\u003ccode\u003efd9fa79\u003c/code\u003e\u003c/a\u003e fix modal popup navigation links (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/compare/0.30.0...0.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\u003c/code\u003e_)\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 5.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate RedirectsPanel in favor of the HistoryPanel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2223\"\u003edjango-commons/django-debug-toolbar#2223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd cache view to example app by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2243\"\u003edjango-commons/django-debug-toolbar#2243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd zizmor for GHA security analysis by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2201\"\u003edjango-commons/django-debug-toolbar#2201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd indent size of 2 for yml files. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2244\"\u003edjango-commons/django-debug-toolbar#2244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReduce the number of test runs in CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2248\"\u003edjango-commons/django-debug-toolbar#2248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStore the code coverage files on each test run for CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2245\"\u003edjango-commons/django-debug-toolbar#2245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse double-quotes for GITHUB_REF_NAME shell variable. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2250\"\u003edjango-commons/django-debug-toolbar#2250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2249\"\u003edjango-commons/django-debug-toolbar#2249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2251\"\u003edjango-commons/django-debug-toolbar#2251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersist the credentials because coverage_comment needs them. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2252\"\u003edjango-commons/django-debug-toolbar#2252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow cache alias instead of backend repr in calls table by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2219\"\u003edjango-commons/django-debug-toolbar#2219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Django 5.0 to save some CI resources by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2253\"\u003edjango-commons/django-debug-toolbar#2253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBye Python 39 by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2254\"\u003edjango-commons/django-debug-toolbar#2254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for enabling/disabling SQLPanel tracking of toolbar model queries by \u003ca href=\"https://github.com/theShinigami\"\u003e\u003ccode\u003e@​theShinigami\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2211\"\u003edjango-commons/django-debug-toolbar#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce toolbar vs panel organization of configs. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2257\"\u003edjango-commons/django-debug-toolbar#2257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore monospace font for templates and stacktraces by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2261\"\u003edjango-commons/django-debug-toolbar#2261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test to confirm assertNumQueries by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2259\"\u003edjango-commons/django-debug-toolbar#2259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django built-in CSP nonce support by \u003ca href=\"https://github.com/ahumeau\"\u003e\u003ccode\u003e@​ahumeau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2267\"\u003edjango-commons/django-debug-toolbar#2267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dependabot cooldown. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2270\"\u003edjango-commons/django-debug-toolbar#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the hash and version of python-coverage-comment-action by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2269\"\u003edjango-commons/django-debug-toolbar#2269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix string representation of values in settings panel by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2263\"\u003edjango-commons/django-debug-toolbar#2263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare support for Django 6.0 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2272\"\u003edjango-commons/django-debug-toolbar#2272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude dependabot and pre-commit bot commits from GitHub release notes by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2278\"\u003edjango-commons/django-debug-toolbar#2278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove comment for clarity in \u003ccode\u003eDebugToolbarMiddleware\u003c/code\u003e call method by \u003ca href=\"https://github.com/rnazali\"\u003e\u003ccode\u003e@​rnazali\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2283\"\u003edjango-commons/django-debug-toolbar#2283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type hints for History Panel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2247\"\u003edjango-commons/django-debug-toolbar#2247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize CI with concurrency by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2287\"\u003edjango-commons/django-debug-toolbar#2287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd LLM usage checkbox to PR template by \u003ca href=\"https://github.com/yeongbin05\"\u003e\u003ccode\u003e@​yeongbin05\u003c/code\u003e\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/chnm/graffitihouse/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chnm%2Fgraffitihouse/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"},{"uuid":"3961657675","node_id":"PR_kwDORTuhwc7Ez_qZ","number":10,"state":"open","title":"Bump psycopg2 from 2.9.9 to 2.9.11","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-02-19T08:37:15.000Z","updated_at":"2026-02-19T08:37:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.9","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.11.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.11\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.9\u0026new-version=2.9.11)](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/bhavikpatel/geonode_nepal_ithari/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhavikpatel%2Fgeonode_nepal_ithari/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"3934239497","node_id":"PR_kwDOBwbUJs7DZ_Dm","number":149,"state":"closed","title":"Bump the all-dependencies group in /requirements with 38 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-12T22:53:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-12T22:00:31.000Z","updated_at":"2026-02-12T22:54:00.000Z","time_to_close":3208,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":38,"packages":[{"name":"bleach","old_version":"6.0.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"celery","old_version":"5.4.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"celery-redbeat","old_version":"2.2.0","new_version":"2.3.3","repository_url":"https://github.com/sibson/redbeat"},{"name":"cryptography","old_version":"42.0.4","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"dockerfile-parse","old_version":"2.0.0","new_version":"2.0.1","repository_url":"https://github.com/containerbuildsystem/dockerfile-parse"},{"name":"flask","old_version":"2.3.2","new_version":"2.3.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-admin","old_version":"1.6.1","new_version":"2.0.2","repository_url":"https://github.com/pallets-eco/flask-admin"},{"name":"flask-babel","old_version":"3.1.0","new_version":"4.0.0","repository_url":"https://github.com/python-babel/flask-babel"},{"name":"flask-debugtoolbar","old_version":"0.14.1","new_version":"0.16.0","repository_url":"https://github.com/pallets-eco/flask-debugtoolbar"},{"name":"flask-mail","old_version":"0.9.1","new_version":"0.10.0","repository_url":"https://github.com/pallets-eco/flask-mail"},{"name":"flask-migrate","old_version":"3.0.1","new_version":"4.1.0","repository_url":"https://github.com/miguelgrinberg/flask-migrate"},{"name":"flask-nav3","old_version":"0.7.0","new_version":"0.7.2","repository_url":"https://github.com/wtfo-guru/flask-nav3"},{"name":"flask-security-too","old_version":"5.3.3","new_version":"5.7.1","repository_url":"https://github.com/pallets-eco/flask-security"},{"name":"flask-sock","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/miguelgrinberg/flask-sock"},{"name":"flask-sqlalchemy","old_version":"2.5.1","new_version":"3.1.1","repository_url":"https://github.com/pallets-eco/flask-sqlalchemy"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.3","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hupper","old_version":"1.10.3","new_version":"1.12.1","repository_url":"https://github.com/Pylons/hupper"},{"name":"hvac","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hvac/hvac"},{"name":"kubernetes","old_version":"30.1.0","new_version":"35.0.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"psycopg2","old_version":"2.9.6","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"py-consul","old_version":"1.5.1","new_version":"1.7.1","repository_url":"https://github.com/criteo-forks/py-consul"},{"name":"pygithub","old_version":"1.59.1","new_version":"2.8.1","repository_url":"https://github.com/pygithub/pygithub"},{"name":"python-dxf","old_version":"10.0.0","new_version":"12.1.1","repository_url":"https://github.com/davedoesdev/dxf"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"redis","old_version":"3.5.3","new_version":"7.1.1","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.6.0","new_version":"2.52.0"},{"name":"sqlalchemy","old_version":"1.4.48","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-continuum","old_version":"1.3.14","new_version":"1.6.0","repository_url":"https://github.com/kvesteri/sqlalchemy-continuum"},{"name":"typing-extensions","old_version":"4.7.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"unidecode","old_version":"1.2.0","new_version":"1.4.0","repository_url":"https://github.com/kmike/text-unidecode"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"bandit","old_version":"1.7.9","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"black","old_version":"24.4.2","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mypy","old_version":"1.11.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.3","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"ruff","old_version":"0.5.1","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-pyyaml","old_version":"6.0.12.20240311","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.0.20240712","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /requirements with 38 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `6.0.0` | `6.3.0` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.6.2` |\n| [celery-redbeat](https://github.com/sibson/redbeat) | `2.2.0` | `2.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.4` | `46.0.5` |\n| [dockerfile-parse](https://github.com/containerbuildsystem/dockerfile-parse) | `2.0.0` | `2.0.1` |\n| [flask](https://github.com/pallets/flask) | `2.3.2` | `2.3.3` |\n| [flask-admin](https://github.com/pallets-eco/flask-admin) | `1.6.1` | `2.0.2` |\n| [flask-babel](https://github.com/python-babel/flask-babel) | `3.1.0` | `4.0.0` |\n| [flask-debugtoolbar](https://github.com/pallets-eco/flask-debugtoolbar) | `0.14.1` | `0.16.0` |\n| [flask-mail](https://github.com/pallets-eco/flask-mail) | `0.9.1` | `0.10.0` |\n| [flask-migrate](https://github.com/miguelgrinberg/flask-migrate) | `3.0.1` | `4.1.0` |\n| [flask-nav3](https://github.com/wtfo-guru/flask-nav3) | `0.7.0` | `0.7.2` |\n| [flask-security-too](https://github.com/pallets-eco/flask-security) | `5.3.3` | `5.7.1` |\n| [flask-sock](https://github.com/miguelgrinberg/flask-sock) | `0.6.0` | `0.7.0` |\n| [flask-sqlalchemy](https://github.com/pallets-eco/flask-sqlalchemy) | `2.5.1` | `3.1.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.3` |\n| [hupper](https://github.com/Pylons/hupper) | `1.10.3` | `1.12.1` |\n| [hvac](https://github.com/hvac/hvac) | `2.3.0` | `2.4.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `35.0.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.6` | `2.9.11` |\n| [py-consul](https://github.com/criteo-forks/py-consul) | `1.5.1` | `1.7.1` |\n| [pygithub](https://github.com/pygithub/pygithub) | `1.59.1` | `2.8.1` |\n| [python-dxf](https://github.com/davedoesdev/dxf) | `10.0.0` | `12.1.1` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n| [redis](https://github.com/redis/redis-py) | `3.5.3` | `7.1.1` |\n| [sentry-sdk[flask]](https://github.com/getsentry/sentry-python) | `2.6.0` | `2.52.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `1.4.48` | `2.0.46` |\n| [sqlalchemy-continuum](https://github.com/kvesteri/sqlalchemy-continuum) | `1.3.14` | `1.6.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.7.1` | `4.15.0` |\n| [unidecode](https://github.com/kmike/text-unidecode) | `1.2.0` | `1.4.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.6.3` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.9` | `1.9.3` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.11.0` | `1.19.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.5.1` | `0.15.0` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20240311` | `6.0.12.20250915` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20240712` | `2.32.4.20260107` |\n\nUpdates `bleach` from 6.0.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/v6.0.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 `celery` from 5.4.0 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\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/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.4.0...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery-redbeat` from 2.2.0 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sibson/redbeat/blob/main/CHANGES.txt\"\u003ecelery-redbeat's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3dev (unreleased)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 and add CI coverage through Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3 (2025-07-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Python 3.12 support, thanks \u003ca href=\"https://github.com/AnkiHubSoftware\"\u003e\u003ccode\u003e@​AnkiHubSoftware\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, update RedBeatSchedulerEntry definitions for improved type safety and correctness, thanks \u003ca href=\"https://github.com/sotosapp\"\u003e\u003ccode\u003e@​sotosapp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, Redbeat no longer updating tasks definitions on Redis \u003ca href=\"https://redirect.github.com/sibson/redbeat/issues/289\"\u003e#289\u003c/a\u003e, thanks \u003ca href=\"https://github.com/semoac\"\u003e\u003ccode\u003e@​semoac\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci, fix testpypi publish by checking out source before version update\u003c/li\u003e\n\u003cli\u003etest, pin fakeredis\u0026lt;2.27.0 for Python 3.8 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0 (2025-02-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix, allow disabling of lock with redbeat_lock_key = None, thanks \u003ca href=\"https://github.com/jscaria\"\u003e\u003ccode\u003e@​jscaria\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/molog\"\u003e\u003ccode\u003e@​molog\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bertosantamaria\"\u003e\u003ccode\u003e@​bertosantamaria\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, track changes to primary in Sentinel, thanks \u003ca href=\"https://github.com/Niccolum\"\u003e\u003ccode\u003e@​Niccolum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, static entries honour last_run_at, thanks \u003ca href=\"https://github.com/kchamz\"\u003e\u003ccode\u003e@​kchamz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc updates, thanks \u003ca href=\"https://github.com/miketheman\"\u003e\u003ccode\u003e@​miketheman\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cikay\"\u003e\u003ccode\u003e@​cikay\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/sibson/redbeat/commit/2b85c88951fdd2964610819c1a59e4914e4c205b\"\u003e\u003ccode\u003e2b85c88\u003c/code\u003e\u003c/a\u003e prepare for release of 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/3d107dd7cf5c310bcd05fd8ba76da622a0f84b13\"\u003e\u003ccode\u003e3d107dd\u003c/code\u003e\u003c/a\u003e update for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/30e812dd1a178dca02390c4f4a3e8fe79c43ca39\"\u003e\u003ccode\u003e30e812d\u003c/code\u003e\u003c/a\u003e makefile: add version target using grep for warning-free version check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/1242fde248ed7aeebe7cd148f873977f0face2e8\"\u003e\u003ccode\u003e1242fde\u003c/code\u003e\u003c/a\u003e update changelog for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f35e31cfb0f9c0cf6662821cc4d4d7ec1d45d144\"\u003e\u003ccode\u003ef35e31c\u003c/code\u003e\u003c/a\u003e ci: fetch full git history for pbr versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/acf82610cb0fab5caa3418c42efcfb4715686d2e\"\u003e\u003ccode\u003eacf8261\u003c/code\u003e\u003c/a\u003e build: switch to pbr for dynamic versioning and simplify workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/a317b5ff3a4f7b6508c8d91ae55f3ac736d646be\"\u003e\u003ccode\u003ea317b5f\u003c/code\u003e\u003c/a\u003e bump version for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/5e185f63ba10458545ec4c8a91747006da65de63\"\u003e\u003ccode\u003e5e185f6\u003c/code\u003e\u003c/a\u003e ci: use .dev0.\u0026lt;githash\u0026gt; for testpypi version (PEP 440/PyPI compliant)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f384d757f8f58ca2cd26d36c13dfb8971461d3de\"\u003e\u003ccode\u003ef384d75\u003c/code\u003e\u003c/a\u003e ci: ensure PEP 440 compliant version for testpypi with git hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/bfc520b778a0234815917e3aba472a27ffabc6f6\"\u003e\u003ccode\u003ebfc520b\u003c/code\u003e\u003c/a\u003e test: pin fakeredis\u0026lt;2.27.0 for Python 3.8 support (see comment)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sibson/redbeat/compare/v2.2.0...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 42.0.4 to 46.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003c/p\u003e\n\u003cp\u003e46.0.2 - 2025-09-30\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-1:\u003c/p\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\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/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2726efdb6d67f1c90cf9c6062d9fe051965586f8\"\u003e\u003ccode\u003e2726efd\u003c/code\u003e\u003c/a\u003e Depend on CFFI 2.0.0 or newer on Python \u0026gt; 3.8 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13448\"\u003e#13448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/62230623d183706632c0eb7822c96ac95e3710a8\"\u003e\u003ccode\u003e6223062\u003c/code\u003e\u003c/a\u003e release 46.0.0 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13446\"\u003e#13446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/42.0.4...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dockerfile-parse` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/releases\"\u003edockerfile-parse's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemoval of python-six module\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/containerbuildsystem/dockerfile-parse/commit/3a4360f78e60ac72b6ffc627135fca27c180c4ad\"\u003e\u003ccode\u003e3a4360f\u003c/code\u003e\u003c/a\u003e Automatic commit of package [python-dockerfile-parse] release [2.0.1-1].\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/7d0e60413dfd6cb7f6dbe2ecb841a8199f6a43a7\"\u003e\u003ccode\u003e7d0e604\u003c/code\u003e\u003c/a\u003e fix(pylint): address broad-exception-raised\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/9cd9cde8a1502e04c9078242964b4bb22eb00c77\"\u003e\u003ccode\u003e9cd9cde\u003c/code\u003e\u003c/a\u003e fix(spec): remove six module\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/compare/2.0.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 2.3.2 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cp\u003eThis is a fix release for the 2.3.x feature branch.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChanges: \u003ca href=\"https://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\"\u003ehttps://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/31?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/31?closed=1\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.3.3\u003c/h2\u003e\n\u003cp\u003eReleased 2023-08-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.12 compatibility.\u003c/li\u003e\n\u003cli\u003eRequire Werkzeug \u0026gt;= 2.3.7.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eRefactor how an app's root and instance paths are determined. :issue:\u003ccode\u003e5160\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3205b53c7cf69d17fee49cac6b84978175b7dd73\"\u003e\u003ccode\u003e3205b53\u003c/code\u003e\u003c/a\u003e release version 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9f9550247a2798b9dcc28081c15e266442f4e28a\"\u003e\u003ccode\u003e9f95502\u003c/code\u003e\u003c/a\u003e bump werkzeug 2.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/02736640095ed6d5a4a409a9658eaca373fd1d48\"\u003e\u003ccode\u003e0273664\u003c/code\u003e\u003c/a\u003e Update dispatch by path example (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5217\"\u003e#5217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/a887e179b8af6a9c582a7918f9f8499ab58032cc\"\u003e\u003ccode\u003ea887e17\u003c/code\u003e\u003c/a\u003e clean up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/aa6d4c3e92bd11a7d449f49f524e54bbb88b89c0\"\u003e\u003ccode\u003eaa6d4c3\u003c/code\u003e\u003c/a\u003e update dispatch-by-path example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/826514b8eb18f6c314cf566630253d35c89e42c3\"\u003e\u003ccode\u003e826514b\u003c/code\u003e\u003c/a\u003e fix flake8 bugbear findings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/6d266f63633f5f127165d4ef836db14a59bbc106\"\u003e\u003ccode\u003e6d266f6\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/17e146ad949b3d80438faf95e81b53c543cb50f5\"\u003e\u003ccode\u003e17e146a\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/8a72b741616556b4f739ea79ab502c2d2038844a\"\u003e\u003ccode\u003e8a72b74\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5211\"\u003e#5211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7255be9626ab56d81bc0ab86db939fcc1da9bca1\"\u003e\u003ccode\u003e7255be9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/2.3.2...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-admin` from 1.6.1 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-admin/releases\"\u003eflask-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes from v1.6.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eConfig variable name\u003c/th\u003e\n\u003cth\u003eWhat's changed\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_SWATCH\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(swatch=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(fluid=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_MAP_ID\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_SEARCH\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LAT\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LONG\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eNew functionality:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python \u0026lt;=3.13\u003c/li\u003e\n\u003cli\u003eThe default query for pymongo can be overridden\u003c/li\u003e\n\u003cli\u003eFlask async routes are supported\u003c/li\u003e\n\u003cli\u003eFlask-Admin now supports the \u003ccode\u003ehost_matching\u003c/code\u003e mode of Flask apps. See documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003eFlask-Admin is now compatible with SQLAlchemy v2+, Flask v3+, WTForms v3+, and Pillow v10+.\u003c/li\u003e\n\u003cli\u003eFlask-Admin now declares its dependencies and supported dependency versions more cleanly, including using pip extras. If you use Flask-Admin with SQLAlchemy, for example, you should use \u003ccode\u003epip install flask-admin[sqlalchemy]\u003c/code\u003e or list \u003ccode\u003eflask-admin[sqlalchemy]\u003c/code\u003e in your requirements.txt or pyproject.toml files.\u003c/li\u003e\n\u003cli\u003eApps using content security policies to restrict the assets that can be loaded can now whitelist Flask-Admin's assets by passing a \u003ccode\u003ecsp_nonce_generator\u003c/code\u003e function to the Admin instance. See examples or documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epage_size_options\u003c/code\u003e can now be configured on Admin models, to restrict the page sizes that users can select. These are now enforced properly and cannot be bypassed by URL hacking.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBootstrap menu icons should show up properly and not duplicated\u003c/li\u003e\n\u003cli\u003eRedis CLI commands are now case insensitive\u003c/li\u003e\n\u003cli\u003eSQLAlchemy boolean filters now convert \u0026quot;1\u0026quot; and \u0026quot;0\u0026quot; to Python booleans, which fixes a type coercion issue with psycopg(3).\u003c/li\u003e\n\u003cli\u003eJinja templates can now be loaded in StrictUndefined mode.\u003c/li\u003e\n\u003cli\u003eRemove an implicit dependency on \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed an error caused by the fallback implementation of \u003ccode\u003egettext()\u003c/code\u003e (when used in templates)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-admin/blob/master/doc/changelog.rst\"\u003eflask-admin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. list-table:: Configuration Changes\n:widths: 50 50\n:header-rows: 1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eConfig variable name\u003c/li\u003e\n\u003cli\u003eWhat's changed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_SWATCH\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(swatch=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(fluid=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_MAP_ID\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_SEARCH\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eGOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LAT\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LONG\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\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/pallets-eco/flask-admin/commit/e26bee40d0aaddf7aaf2bc9d1f8949cfed3a709c\"\u003e\u003ccode\u003ee26bee4\u003c/code\u003e\u003c/a\u003e v2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/6b0a8a03f0ebd3bcf28bfb59390c380c014b031d\"\u003e\u003ccode\u003e6b0a8a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2696\"\u003e#2696\u003c/a\u003e from samialfattani/feature/menu-divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/67c5702d102e89c9ab96f5ed87d446595b9cc3a3\"\u003e\u003ccode\u003e67c5702\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2699\"\u003e#2699\u003c/a\u003e from samialfattani/err_desc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/9336e2d56c372ec697360f0d15fa1ddc93e7941f\"\u003e\u003ccode\u003e9336e2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2685\"\u003e#2685\u003c/a\u003e from pallets-eco/py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/5368f70b925e85f724e5c91b2f8c894fab2855fe\"\u003e\u003ccode\u003e5368f70\u003c/code\u003e\u003c/a\u003e error discription in red color\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/731281b61d21f9fcc58243a71e5ee4d9574dbe3e\"\u003e\u003ccode\u003e731281b\u003c/code\u003e\u003c/a\u003e filter resource warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/0eb8920a5fcde4eae7d69fb463d6ae1f00dea64f\"\u003e\u003ccode\u003e0eb8920\u003c/code\u003e\u003c/a\u003e add menu divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/16d36f25e8d06d099db29b7a29d3b4eeb85b8ca5\"\u003e\u003ccode\u003e16d36f2\u003c/code\u003e\u003c/a\u003e Release v2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/4303e46fa9b782c7136803e77f044c4abd39fa17\"\u003e\u003ccode\u003e4303e46\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2692\"\u003e#2692\u003c/a\u003e from samialfattani/fix_arabic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/d923bbc5b163e92beaa2450c9c5a5532da866489\"\u003e\u003ccode\u003ed923bbc\u003c/code\u003e\u003c/a\u003e fix typos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-admin/compare/v1.6.1...v2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-babel` from 3.1.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/flask-babel/releases\"\u003eflask-babel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for end-of-life Python 3.7. Support PyPy 3.9\u003c/li\u003e\n\u003cli\u003eReplace deprecated locked_cached_property decorator with cached_property (\u003ca href=\"https://redirect.github.com/python-babel/flask-babel/issues/230\"\u003e#230\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/python-babel/flask-babel/commit/a754eade39d9850693dd2b645ae8a2545df7fdf7\"\u003e\u003ccode\u003ea754ead\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.1 → 4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/d42f50c1f80279931279c076c40e2bacf74b4c15\"\u003e\u003ccode\u003ed42f50c\u003c/code\u003e\u003c/a\u003e Dropping Python 3.7 support, adding PyPy 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/db5c2a152330d3095aab868752342dad18653852\"\u003e\u003ccode\u003edb5c2a1\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.0 → 3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/6ca29cdc52587488c46f131dbb3b3cd69f4aa78c\"\u003e\u003ccode\u003e6ca29cd\u003c/code\u003e\u003c/a\u003e Merge branch 'jkittner-flask-2-3-deprecation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/346a45a0e1fbf6fae735c70588754724a0101857\"\u003e\u003ccode\u003e346a45a\u003c/code\u003e\u003c/a\u003e Merge branch 'flask-2-3-deprecation' of github.com:jkittner/flask-babel into ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/dad9165d5cb4494e4473259bf37fc34a21974cad\"\u003e\u003ccode\u003edad9165\u003c/code\u003e\u003c/a\u003e Explicit app factory test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/38f15cd15bdb742cadb81bcb8c8bfb81e0b5a1c5\"\u003e\u003ccode\u003e38f15cd\u003c/code\u003e\u003c/a\u003e Release triggered on public, not creation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/414a5a3dee8639b28ca6edd37e5f91adbc622e37\"\u003e\u003ccode\u003e414a5a3\u003c/code\u003e\u003c/a\u003e replace deprecated locked_cached_property decorator with cached_property\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-babel/flask-babel/compare/v3.1.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-debugtoolbar` from 0.14.1 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/releases\"\u003eflask-debugtoolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/255\"\u003epallets-eco/flask-debugtoolbar#255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.3.0 in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/256\"\u003epallets-eco/flask-debugtoolbar#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop unnecessary Blinker dependency in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/248\"\u003epallets-eco/flask-debugtoolbar#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd static type annotations in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/259\"\u003epallets-eco/flask-debugtoolbar#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e__version__\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/260\"\u003epallets-eco/flask-debugtoolbar#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eFlask.host_matching\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/274\"\u003epallets-eco/flask-debugtoolbar#274\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix prob w/using w/o SQLAlchemy by \u003ca href=\"https://github.com/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/254\"\u003epallets-eco/flask-debugtoolbar#254\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/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd minimal test without extra deps by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/230\"\u003epallets-eco/flask-debugtoolbar#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.2.0 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/224\"\u003epallets-eco/flask-debugtoolbar#224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to dump profiler stats by \u003ca href=\"https://github.com/Dosenpfand\"\u003e\u003ccode\u003e@​Dosenpfand\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/204\"\u003epallets-eco/flask-debugtoolbar#204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003einit_app()\u003c/code\u003e method to \u003ccode\u003eDebugPanel\u003c/code\u003e base class by \u003ca href=\"https://github.com/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport applications using flask.copy_current_request_context by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SQLAlchemy recording warning for versions \u0026gt;= 3 by \u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003edistutils\u003c/code\u003e error on Python 3.12 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/238\"\u003epallets-eco/flask-debugtoolbar#238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove deprecated Flask version attribute by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/243\"\u003epallets-eco/flask-debugtoolbar#243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing whitespace by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/237\"\u003epallets-eco/flask-debugtoolbar#237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ejquery.tablesorter.js\u003c/code\u003e plugin by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/235\"\u003epallets-eco/flask-debugtoolbar#235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e1.12.4\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/236\"\u003epallets-eco/flask-debugtoolbar#236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e3.7.1\u003c/code\u003e and \u003ccode\u003ejquery-migrate\u003c/code\u003e to \u003ccode\u003e3.4.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/241\"\u003epallets-eco/flask-debugtoolbar#241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some \u003ccode\u003ejquery\u003c/code\u003e deprecation warnings by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/242\"\u003epallets-eco/flask-debugtoolbar#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003epkg_resources\u003c/code\u003e with stdlib by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/239\"\u003epallets-eco/flask-debugtoolbar#239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent LookupError when accessing debug_toolbars_var by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/245\"\u003epallets-eco/flask-debugtoolbar#245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall custom Sphinx theme via \u003ccode\u003eextras_require\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/250\"\u003epallets-eco/flask-debugtoolbar#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e.readthedocs.yaml\u003c/code\u003e file by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/246\"\u003epallets-eco/flask-debugtoolbar#246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.0\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/251\"\u003epallets-eco/flask-debugtoolbar#251\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/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.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/pallets-eco/flask-debugtoolbar/commit/98c611ade925e1a615373edcd6313222ea57d221\"\u003e\u003ccode\u003e98c611a\u003c/code\u003e\u003c/a\u003e Release version 0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/95b02b592036e4d74c1d837d0ef3bba06063aa38\"\u003e\u003ccode\u003e95b02b5\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/bd642464f28e053c52a09882665e5bd8af5132da\"\u003e\u003ccode\u003ebd64246\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5671a92e1737699dcce8d792ae0113c150c52a7d\"\u003e\u003ccode\u003e5671a92\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ad6323994f2ab3226c6056755f535cb1aea62e42\"\u003e\u003ccode\u003ead63239\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/23612561077884f355fc34651955757d29289dc6\"\u003e\u003ccode\u003e2361256\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/e7b8136dea5a746195ebd4e9982ec2be8fc9c617\"\u003e\u003ccode\u003ee7b8136\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ccf5ae22c6ebcd284fa4826bc21f570a624017c3\"\u003e\u003ccode\u003eccf5ae2\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into dependabot/github_actions/github-actions-5070efb06b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/4e98b183f3060d38028a0e2c47649553b23dc063\"\u003e\u003ccode\u003e4e98b18\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group in /requirements with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5b4f4a0fcd29ed152f8041a386d264a1cd04cc30\"\u003e\u003ccode\u003e5b4f4a0\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-mail` from 0.9.1 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-mail/releases\"\u003eflask-mail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0\u003c/h2\u003e\n\u003cp\u003eFlask-Mail is now part of the Pallets Community Ecosystem. Pallets is the open source organization that maintains Flask; Pallets-Eco enables community maintenance of related projects. If you are interested in helping maintain this project, please reach out on \u003ca href=\"https://discord.gg/pallets\"\u003ethe Pallets Discord server\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release mainly refreshes the project after its extended hiatus. It now uses the standard Pallets project layout, tools, and configurations. Documentation is now hosted at \u003ca href=\"https://flask-mail.readthedocs.io\"\u003ehttps://flask-mail.readthedocs.io\u003c/a\u003e. The library now exports static type annotations.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\"\u003ehttps://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/flask-mail/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/flask-mail/milestone/1?closed=1\u003c/a\u003e\nPyPI: \u003ca href=\"https://pypi.org/project/Flask-Mail/0.10.0/\"\u003ehttps://pypi.org/project/Flask-Mail/0.10.0/\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or \u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and \u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e and will not be \u003ccode\u003eNone\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/pallets-eco/flask-mail/blob/main/CHANGES.md\"\u003eflask-mail's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.10.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next\nversion.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and\n\u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e\nand will not be \u003ccode\u003eNone\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-eco/flask-mail/commit/848ea85f2bf2583d7f0ef58ed55ac1d18f67883a\"\u003e\u003ccode\u003e848ea85\u003c/code\u003e\u003c/a\u003e release version 0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/0ec1f6b59407f064ece6db351e2da86f4f9ea557\"\u003e\u003ccode\u003e0ec1f6b\u003c/code\u003e\u003c/a\u003e remove test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/846a67ecf442d908c45057d8c39e2a16150d4868\"\u003e\u003ccode\u003e846a67e\u003c/code\u003e\u003c/a\u003e add static type annotations (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/9075a7a453839a2d8918635ac517713375d26357\"\u003e\u003ccode\u003e9075a7a\u003c/code\u003e\u003c/a\u003e fix signal argument order (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/7b450bd11060bb2885b107c22593326cf488ebad\"\u003e\u003ccode\u003e7b450bd\u003c/code\u003e\u003c/a\u003e update \u003ccode\u003eis_bad_headers\u003c/code\u003e deprecation message (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/56914a8512cade43990ea0161560cef8b9bc7391\"\u003e\u003ccode\u003e56914a8\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003e__version__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/1932b747f8323c3225fa306f6f36e561face7368\"\u003e\u003ccode\u003e1932b74\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/46bddb7cd0f543c32d79ee449087664143927a61\"\u003e\u003ccode\u003e46bddb7\u003c/code\u003e\u003c/a\u003e Various minor doc updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/610faf7d5f7b1cf3f0706bd8ca1aec9bba9fa654\"\u003e\u003ccode\u003e610faf7\u003c/code\u003e\u003c/a\u003e Update docs to use myst-parser (and be written in .md) (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/bede1aca81ebf585cf9d8284e8881c94e8eb269b\"\u003e\u003ccode\u003ebede1ac\u003c/code\u003e\u003c/a\u003e notify 0.8 backward incompatible changes in ChangeLog (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/109\"\u003e#109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-mail/compare/0.9.1...0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-migrate` from 3.0.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/releases\"\u003eflask-migrate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.7\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.6\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.5\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.4\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.3\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 3.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\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/miguelgrinberg/Flask-Migrate/blob/main/CHANGES.md\"\u003eflask-migrate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlask-Migrate Change Log\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.1.0\u003c/strong\u003e - 2025-01-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept arguments such as \u003ccode\u003e--directory\u003c/code\u003e in environment variables \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/553\"\u003e#553\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/12a181ce0542659f10b4ce154a10cfd41fa1f501\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix minor typos in documentation \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/552\"\u003e#552\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/3b073a2c500303894c495d2e4fa0ef449b6a2833\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eKevin Kirsche\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.7\u003c/strong\u003e - 2024-03-11\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegression from \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e: check \u003ccode\u003eg.x_arg\u003c/code\u003e exists before accessing it \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/541\"\u003e#541\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7e8032c61e5c47f4e50b03dcf98c3b20dd5a8e55\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eSkye Im\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.6\u003c/strong\u003e - 2024-03-09\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003e-x\u003c/code\u003e options for all db commands \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/6f3f889c36030134f87dc1db327c2385d873a4d6\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--purge\u003c/code\u003e flag to the \u003ccode\u003estamp\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/540\"\u003e#540\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/af67bb093df5652c867b88880c5934bfc68313cc\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eJono N\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.5\u003c/strong\u003e - 2023-09-12\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompatibility fixes for Flask-SQLAlchemy \u0026gt;= 3.1 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/526\"\u003e#526\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/f562178bbe1912912f3cb6877cbae8b0899c74da\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eDavid Lord\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eprocess_revision_directives\u003c/code\u003e option to be configurable \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/523\"\u003e#523\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/821e37fcc4a5e339f197153cdbb4dd2316cbd44b\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ellc\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eStop testing Python 3.7, as Flask-SQLAlchemy 3.1 stopped supporting it (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/8d175193f00bf4e5578f0142d011093d8cd53d57\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.4\u003c/strong\u003e - 2023-02-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly obtain database URL with SQLAlchemy 2.0 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/505\"\u003e#505\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/c8cd02c5d3d43bbab462b863db5417b5d69228bb\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.3\u003c/strong\u003e - 2023-01-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove legacy \u003cstrong\u003efuture\u003c/strong\u003e import in Alembic templates \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/504\"\u003e#504\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a388cfe320254735f4ed65ac655caaf0cae8b28\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ePamela Fox\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 1.4 and 2.0 to the test matrix (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a725f2e3267f1c3bb4920cd3bff3a9ff1d7eb6e\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch to pytest as test runner (\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/cabotage/cabotage-app/pull/149","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabotage%2Fcabotage-app/issues/149","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/149/packages"},{"uuid":"3918528584","node_id":"PR_kwDORMh3vc7CmCKU","number":9,"state":"closed","title":"build(deps): bump psycopg2 from 2.9.9 to 2.9.11","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-09T23:57:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-09T22:52:11.000Z","updated_at":"2026-02-09T23:57:52.000Z","time_to_close":3931,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"psycopg2","old_version":"2.9.9","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.11.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.11\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.9\u0026new-version=2.9.11)](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/AAAA477/carribean-geonode/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AAAA477%2Fcarribean-geonode/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"3898247049","node_id":"PR_kwDOKO3IB87Bje1Z","number":69,"state":"closed","title":"requirements: bump the pip-minor-patch group with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-18T14:32:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-04T20:16:39.000Z","updated_at":"2026-02-18T14:33:26.000Z","time_to_close":1188977,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"requirements: bump","group_name":"pip-minor-patch","update_count":50,"packages":[{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"incremental","old_version":"24.7.2","new_version":"24.11.0","repository_url":"https://github.com/twisted/incremental"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"markdown","old_version":"3.8","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"hvac","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hvac/hvac"},{"name":"mypy","old_version":"1.16.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"mypy-zope","old_version":"1.0.12","new_version":"1.0.14","repository_url":"https://github.com/Shoobx/mypy-zope"},{"name":"alembic","old_version":"1.18.1","new_version":"1.18.3","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"boto3","old_version":"1.38.36","new_version":"1.42.41","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.38.36","new_version":"1.42.41","repository_url":"https://github.com/boto/botocore"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"dill","old_version":"0.4.0","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"evalidate","old_version":"2.0.5","new_version":"2.1.3","repository_url":"https://github.com/yaroslaff/evalidate"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"lz4","old_version":"4.4.4","new_version":"4.4.5","repository_url":"https://github.com/python-lz4/python-lz4"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.6","new_version":"5.1.20","repository_url":"https://github.com/getmoto/moto"},{"name":"msgpack","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyopenssl","old_version":"25.1.0","new_version":"25.3.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.14.0","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"s3transfer","old_version":"0.13.0","new_version":"0.16.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.1.4","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"zope-event","old_version":"6.0","new_version":"6.1","repository_url":"https://github.com/zopefoundation/zope.event"},{"name":"altgraph","old_version":"0.17.4","new_version":"0.17.5","repository_url":"https://github.com/ronaldoussoren/altgraph"},{"name":"pyinstaller","old_version":"6.14.1","new_version":"6.18.0","repository_url":"https://github.com/pyinstaller/pyinstaller"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pycairo","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/pygobject/pycairo"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"pyenchant","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/pyenchant/pyenchant"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pg8000","old_version":"1.31.2","new_version":"1.31.5","repository_url":"https://github.com/tlocke/pg8000"},{"name":"scramp","old_version":"1.4.5","new_version":"1.4.8","repository_url":"https://github.com/tlocke/scramp"},{"name":"wheel","old_version":"0.45.1","new_version":"0.46.3","repository_url":"https://github.com/pypa/wheel"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-patch group with 50 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [incremental](https://github.com/twisted/incremental) | `24.7.2` | `24.11.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.10.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.3` |\n| [hvac](https://github.com/hvac/hvac) | `2.3.0` | `2.4.0` |\n| [mypy](https://github.com/python/mypy) | `1.16.0` | `1.19.1` |\n| [mypy-zope](https://github.com/Shoobx/mypy-zope) | `1.0.12` | `1.0.14` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.1` | `1.18.3` |\n| [boto3](https://github.com/boto/boto3) | `1.38.36` | `1.42.41` |\n| [botocore](https://github.com/boto/botocore) | `1.38.36` | `1.42.41` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [dill](https://github.com/uqfoundation/dill) | `0.4.0` | `0.4.1` |\n| [evalidate](https://github.com/yaroslaff/evalidate) | `2.0.5` | `2.1.3` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.3.1` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [lz4](https://github.com/python-lz4/python-lz4) | `4.4.4` | `4.4.5` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.6` | `5.1.20` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.1` | `1.1.2` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.1.0` | `25.3.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.0` | `0.15.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.13.0` | `0.16.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.46` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.4` | `3.1.5` |\n| [zope-event](https://github.com/zopefoundation/zope.event) | `6.0` | `6.1` |\n| [altgraph](https://github.com/ronaldoussoren/altgraph) | `0.17.4` | `0.17.5` |\n| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.14.1` | `6.18.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pycairo](https://github.com/pygobject/pycairo) | `1.28.0` | `1.29.0` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [pyenchant](https://github.com/pyenchant/pyenchant) | `3.2.2` | `3.3.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pg8000](https://github.com/tlocke/pg8000) | `1.31.2` | `1.31.5` |\n| [scramp](https://github.com/tlocke/scramp) | `1.4.5` | `1.4.8` |\n| [wheel](https://github.com/pypa/wheel) | `0.45.1` | `0.46.3` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.4.0` |\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\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.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\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/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `incremental` from 24.7.2 to 24.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/twisted/incremental/blob/trunk/NEWS.rst\"\u003eincremental's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eIncremental 24.11.0 (2025-11-27)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncremental now provides a CLI script, \u003ccode\u003eincremental\u003c/code\u003e, allowing you to run it with \u003ccode\u003epipx run incremental\u003c/code\u003e.\nThe \u003ccode\u003eincremental update\u003c/code\u003e subcommand offers the same functionality as \u003ccode\u003epython -m incremental.update\u003c/code\u003e. (\u003ccode\u003e[#99](https://github.com/twisted/incremental/issues/99) \u0026lt;https://github.com/twisted/incremental/issues/99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eIncremental now depends on packaging instead of setuptools at runtime (\u003ccode\u003e[#141](https://github.com/twisted/incremental/issues/141) \u0026lt;https://github.com/twisted/incremental/issues/141\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 and 3.14 to the test matrix. (\u003ccode\u003e[#179](https://github.com/twisted/incremental/issues/179) \u0026lt;https://github.com/twisted/incremental/issues/179\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild Incremental itself with Hatchling, working around failures with certain versions of setuptools (\u003ccode\u003e[#122](https://github.com/twisted/incremental/issues/122) \u0026lt;https://github.com/twisted/incremental/issues/122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncremental's documentation now highlights its primary features: CalVer and indeterminate versions (NEXT). (\u003ccode\u003e[#2](https://github.com/twisted/incremental/issues/2) \u0026lt;https://github.com/twisted/incremental/issues/2\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncremental's CLI no longer depends on Click, so you no longer need to install \u003ccode\u003eincremental[scripts]\u003c/code\u003e for it to function.\nThe \u003ccode\u003escripts\u003c/code\u003e extra is deprecated. (\u003ccode\u003e[#99](https://github.com/twisted/incremental/issues/99) \u0026lt;https://github.com/twisted/incremental/issues/99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8, which has been end-of-life since October 2024. (\u003ccode\u003e[#179](https://github.com/twisted/incremental/issues/179) \u0026lt;https://github.com/twisted/incremental/issues/179\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#105](https://github.com/twisted/incremental/issues/105) \u0026lt;https://github.com/twisted/incremental/issues/105\u0026gt;\u003c/code\u003e\u003cstrong\u003e, \u003ccode\u003e[#116](https://github.com/twisted/incremental/issues/116) \u0026lt;https://github.com/twisted/incremental/issues/116\u0026gt;\u003c/code\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/2e15ebbbd5bdddb122179074e7d088dd0f5bf198\"\u003e\u003ccode\u003e2e15ebb\u003c/code\u003e\u003c/a\u003e Release Incremental 25.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/28034621f305d108c8992ef67ca1e04bfff18741\"\u003e\u003ccode\u003e2803462\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/184\"\u003e#184\u003c/a\u003e from twisted/dependabot/github_actions/actions/checko...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/ab9ac5cc1d8abefa00d9526100063f25c3fa770a\"\u003e\u003ccode\u003eab9ac5c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/fa2a4c70ac385ca5a8d7471313cba668356e3e77\"\u003e\u003ccode\u003efa2a4c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/183\"\u003e#183\u003c/a\u003e from twisted/dependabot/pip/packaging-9f19c49aaa\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/e9a45a25824b6d37096e5cdad4a78cd2fccd21b6\"\u003e\u003ccode\u003ee9a45a2\u003c/code\u003e\u003c/a\u003e Bump build in the packaging group across 1 directory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/f72107413d4d7af3fad1cc5315ec150fd94f7ede\"\u003e\u003ccode\u003ef721074\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/180\"\u003e#180\u003c/a\u003e from twisted/dependabot/pip/uv-0.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/6678e1cd092f207915f57f2a18f71ed1cda76037\"\u003e\u003ccode\u003e6678e1c\u003c/code\u003e\u003c/a\u003e Bump uv from 0.9.5 to 0.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/b98b8c58c98a67c038dfc1c8c993d2dd1baa8bcf\"\u003e\u003ccode\u003eb98b8c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/179\"\u003e#179\u003c/a\u003e from twisted/new-pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/d9ae87ec397cd465b08ac9b85877acbf8ca6a8d4\"\u003e\u003ccode\u003ed9ae87e\u003c/code\u003e\u003c/a\u003e Add newsfragments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/61c2784efe858da52d31609b12cdb831aaabb75f\"\u003e\u003ccode\u003e61c2784\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/twisted/incremental/compare/incremental-24.7.2...incremental-24.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.2\u003c/h1\u003e\n\u003cp\u003e2026-01-28\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2705_: [Linux]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003epidfd_open()\u003c/code\u003e + \u003ccode\u003epoll()\u003c/code\u003e for\nwaiting, resulting in no busy loop and faster response times. Requires\nLinux \u0026gt;= 5.3 and Python \u0026gt;= 3.9. Falls back to traditional polling if\nunavailable.\u003c/li\u003e\n\u003cli\u003e2705_: [macOS], [BSD]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003ekqueue()\u003c/code\u003e for waiting,\nresulting in no busy loop and faster response times.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2701_, [macOS]: fix compilation error on macOS \u0026lt; 10.7.  (patch by Sergey\nFedorov)\u003c/li\u003e\n\u003cli\u003e2707_, [macOS]: fix potential memory leaks in error paths of\n\u003ccode\u003eProcess.memory_full_info()\u003c/code\u003e and \u003ccode\u003eProcess.threads()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e2708_, [macOS]: Process.cmdline()\u003ccode\u003e_ and \u003c/code\u003eProcess.environ()\u003ccode\u003e_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise \u003c/code\u003eAccessDenied`_ instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.0 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\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/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\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/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.0...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.8 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.9.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.8...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.13.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.3 — 2026-02-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in some situations, third-party code was measured when it shouldn't have\nbeen, slowing down test execution. This happened with layered virtual\nenvironments such as uv sometimes makes. The problem is fixed, closing \u003ccode\u003eissue 2082\u003c/code\u003e_. Now any directory on sys.path that is inside a virtualenv is\nconsidered third-party code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2082: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2082\"\u003ecoveragepy/coveragepy#2082\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\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/coveragepy/coveragepy/commit/6bf962f476b2f4cf344e9aa981dbbc8138cdfb69\"\u003e\u003ccode\u003e6bf962f\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9f2e54c31bfe3af00d1d276a4e76014b896c13ad\"\u003e\u003ccode\u003e9f2e54c\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6208c42e7ee6047d6d21b3c5c515f56fc10e7b2d\"\u003e\u003ccode\u003e6208c42\u003c/code\u003e\u003c/a\u003e fix: find third-party packages in more locations. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2082\"\u003e#2082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/edb50169c00ad9a90b2104a85adc57965dc23c2e\"\u003e\u003ccode\u003eedb5016\u003c/code\u003e\u003c/a\u003e refactor: make dataclass imports uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b05826a0f6ab909fe136468647a45e74926cd570\"\u003e\u003ccode\u003eb05826a\u003c/code\u003e\u003c/a\u003e chore: bump actions/setup-python in the action-dependencies group (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b519e17acf1c311c0868e7e571da47b43dd1f6f7\"\u003e\u003ccode\u003eb519e17\u003c/code\u003e\u003c/a\u003e refactor: no need for ox_profile connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/775f1cb19d232e6849b5bb662431390cc7d9a0b5\"\u003e\u003ccode\u003e775f1cb\u003c/code\u003e\u003c/a\u003e build: remove pudb, I can install it if I need it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/0ccb1fe603352cfdc2c4cfbe062a84015d8f3454\"\u003e\u003ccode\u003e0ccb1fe\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9e2a0e8e740915c525256e84e2a628849374c5c\"\u003e\u003ccode\u003ee9e2a0e\u003c/code\u003e\u003c/a\u003e chore: bump actions/checkout in the action-dependencies group (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2122\"\u003e#2122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/77e1a04e898ed8851eeb17f761b4fecacf3de01c\"\u003e\u003ccode\u003e77e1a04\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hvac` from 2.3.0 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hvac/hvac/releases\"\u003ehvac's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.0\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd audience param to kubernetes role creation (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1224\"\u003eGH-1224\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📚 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix AppRole.login docstring (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1182\"\u003eGH-1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Miscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a typo in read_secret_version warning message (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1219\"\u003eGH-1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePin consul version in CI (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1210\"\u003eGH-1210\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/EmFl\"\u003e\u003ccode\u003e@​EmFl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/briantist\"\u003e\u003ccode\u003e@​briantist\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/deamen\"\u003e\u003ccode\u003e@​deamen\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot], \u003ca href=\"https://github.com/evan-cohen\"\u003e\u003ccode\u003e@​evan-cohen\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/roshan-baladhanvi\"\u003e\u003ccode\u003e@​roshan-baladhanvi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e for their lovely contributions.\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/hvac/hvac/blob/main/CHANGELOG.md\"\u003ehvac's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd audience param to kubernetes role creation (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1224\"\u003eGH-1224\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix AppRole.login docstring (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1182\"\u003eGH-1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Miscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a typo in read_secret_version warning message (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1219\"\u003eGH-1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePin consul version in CI (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1210\"\u003eGH-1210\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/hvac/hvac/commit/2f1a58f754526b6baeee43d8763917d308ca2997\"\u003e\u003ccode\u003e2f1a58f\u003c/code\u003e\u003c/a\u003e fix pypi release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/fd769362047d4c05f3260b5b508e2b92db043d27\"\u003e\u003ccode\u003efd76936\u003c/code\u003e\u003c/a\u003e use ls instead (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1233\"\u003e#1233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/7ae23dfe283f43ca6b355080494e6110cc46da8d\"\u003e\u003ccode\u003e7ae23df\u003c/code\u003e\u003c/a\u003e remove tree command from release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/bba486c05642ed04fb89abb3543c7641333346f1\"\u003e\u003ccode\u003ebba486c\u003c/code\u003e\u003c/a\u003e Release/v2.4.0 (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1232\"\u003e#1232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/531b9df740819d8961d1eab3623ab642c6188524\"\u003e\u003ccode\u003e531b9df\u003c/code\u003e\u003c/a\u003e coverage: skip on schedule, try slim runner (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1231\"\u003e#1231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/b8167a7545bbf541200f6acef949b28d888faca2\"\u003e\u003ccode\u003eb8167a7\u003c/code\u003e\u003c/a\u003e add audience param to kubernetes role creation (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/590537d15b389946eb0d34081f2bb3275f33ece6\"\u003e\u003ccode\u003e590537d\u003c/code\u003e\u003c/a\u003e Fix tests and CI - certs, schedule, etc. (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1230\"\u003e#1230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/4c0b650c2adbf4f8af72372e0b33ea60259c7397\"\u003e\u003ccode\u003e4c0b650\u003c/code\u003e\u003c/a\u003e fix: Fixing a typo in read_secret_version (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/ea3a6520cc08f69470494cce0ac26a2ab025f91d\"\u003e\u003ccode\u003eea3a652\u003c/code\u003e\u003c/a\u003e Pin consul version in CI (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1210\"\u003e#1210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/2d2c80e296f2983c00486ee2a2ea000a3cc15604\"\u003e\u003ccode\u003e2d2c80e\u003c/code\u003e\u003c/a\u003e docs: fix AppRole.login docstring (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hvac/hvac/compare/v2.3.0...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy-zope` from 1.0.12 to 1.0.14\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Shoobx/mypy-zope/blob/master/CHANGELOG.md\"\u003emypy-zope's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.14 (2025-12-01)\u003c/h2\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eSupport mypy-1.19\u003c/li\u003e\n\u003cli\u003eSupport mypy-1.18\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.13 (2025-07-17)\u003c/h2\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python-3.8 (follow mypy).\u003c/li\u003e\n\u003cli\u003eSupport mypy-1.17\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/Shoobx/mypy-zope/commit/38d22f3f4f6fc1b85c9a0d3b64577749f682a6d2\"\u003e\u003ccode\u003e38d22f3\u003c/code\u003e\u003c/a\u003e Preparing release 1.0.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/76762ec861b1b3cddc471f1e8949902f3f3264be\"\u003e\u003ccode\u003e76762ec\u003c/code\u003e\u003c/a\u003e Maintain changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/4971d98ab80db3362bd5864a92d385e8c5a43aec\"\u003e\u003ccode\u003e4971d98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Shoobx/mypy-zope/issues/134\"\u003e#134\u003c/a\u003e from Shoobx/dependabot/pip/mypy-gte-1.0.0-and-lt-1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/47af89d2c709f9e478ddbd5590994eba0829fb34\"\u003e\u003ccode\u003e47af89d\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.19.0,\u0026gt;=1.0.0 to \u0026gt;=1.0.0,\u0026lt;1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/0c596ff804a1ece6a8d33c0abf1587a766e047c8\"\u003e\u003ccode\u003e0c596ff\u003c/code\u003e\u003c/a\u003e Maintain changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/dcaa27841defa865c474f585e8bb799a8242399f\"\u003e\u003ccode\u003edcaa278\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Shoobx/mypy-zope/issues/132\"\u003e#132\u003c/a\u003e from Shoobx/dependabot/pip/mypy-gte-1.0.0-and-lt-1.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/8f7b6778df6e3dde48c082ec07182e50b9938c76\"\u003e\u003ccode\u003e8f7b677\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.18.0,\u0026gt;=1.0.0 to \u0026gt;=1.0.0,\u0026lt;1.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/91b275b364cc90403b2a160695f32ca27bc06bb9\"\u003e\u003ccode\u003e91b275b\u003c/code\u003e\u003c/a\u003e Back to development: 1.0.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/8a3165b79643927ae8b03902baaf1651a2f5ca9c\"\u003e\u003ccode\u003e8a3165b\u003c/code\u003e\u003c/a\u003e Preparing release 1.0.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/421b21ff753291f3b62b4b3deef9bc4cb91b199e\"\u003e\u003ccode\u003e421b21f\u003c/code\u003e\u003c/a\u003e Maintain changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Shoobx/mypy-zope/compare/1.0.12...1.0.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.1 to 1.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\nthat are not reflected, allowing the autogenerate comparison to proceed\nwithout error while maintaining the performance improvement from\n\u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e. When multiple foreign keys reference different columns in\nthe same filtered table, the placeholder table accumulates all necessary\ncolumns. These placeholder tables may be visible when using the\n\u003ccode\u003eEnvironmentContext.configure.include_object\u003c/code\u003e callable to\ninspect \u003ccode\u003eForeignKeyConstraint\u003c/code\u003e objects; they will have the name,\nschema and basic column information for the relevant columns present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1787\"\u003e#1787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [general]\u003c/strong\u003e Fixed regression caused by \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1669\"\u003e#1669\u003c/a\u003e which requires SQLAlchemy objects\nto support generic type subscripting; for the older SQLAlchemy 1.4 series,\nthis requires version 1.4.23.  Changed the minimum requirements to require\nversion 1.4.23 rather than 1.4.0.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1788\"\u003e#1788\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.2\u003c/h1\u003e\n\u003cp\u003eReleased: January 28, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[usecase] [operations]\u003c/strong\u003e The \u003ccode\u003eprimary_key\u003c/code\u003e parameter on \u003ccode\u003eColumn\u003c/code\u003e is now honored when\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e is used, and will emit the \u0026quot;PRIMARY KEY\u0026quot;\nkeyword inline within the ADD COLUMN directive.  This is strictly a syntax\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/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.38.36 to 1.42.41\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/60637f8fc25c9411abb7f430eb3c2466437d1704\"\u003e\u003ccode\u003e60637f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.41'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/662d4a34c5c6dea278de160e694e1e8055c590bf\"\u003e\u003ccode\u003e662d4a3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5dcc61b903fef7201710dab6ac14a8d3b0dbbc3d\"\u003e\u003ccode\u003e5dcc61b\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/15a78179d4ba9127aa5903edd9fe6265a45dc25f\"\u003e\u003ccode\u003e15a7817\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6bea7925951176592700c630baaa3a35eaec1d6b\"\u003e\u003ccode\u003e6bea792\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3f92d07e04146184a1769c89616ccb8d304e9fd3\"\u003e\u003ccode\u003e3f92d07\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/0069675fdee79041187d17d3d96cbe47daa992c9\"\u003e\u003ccode\u003e0069675\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/66d036066f907ffebf4f49c87cde3009ec270b87\"\u003e\u003ccode\u003e66d0360\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.0 to 4.32.1 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4715\"\u003e#4715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/fd93dbb656cec791e048992bc24d78850e672c59\"\u003e\u003ccode\u003efd93dbb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.39'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/18836475f987e84d196a6ddd485ae1a3d876dd32\"\u003e\u003ccode\u003e1883647\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.39' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.38.36...1.42.41\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.38.36 to 1.42.41\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/104e8ef284991c77c516d1da7f9cf9917d6e63f2\"\u003e\u003ccode\u003e104e8ef\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.41'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7436ba994fe0e5cc69f302be8e5efd4c8c9859ce\"\u003e\u003ccode\u003e7436ba9\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1a0813ab227c0a0275b3b332b051a737ecec68fc\"\u003e\u003ccode\u003e1a0813a\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/12d57f623893fafc71889af397fd3df30b321318\"\u003e\u003ccode\u003e12d57f6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/a7e48591d05e948cb7f126d7cc5a6a7ce9313859\"\u003e\u003ccode\u003ea7e4859\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/fa102f5401b0b251d5ba0431a69d1c18d2165c21\"\u003e\u003ccode\u003efa102f5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/84898c56e81e251bd97373233550cdf3c83593b1\"\u003e\u003ccode\u003e84898c5\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/14b6a17a426ad0f8e0abe2540dfd43a736b1c2eb\"\u003e\u003ccode\u003e14b6a17\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/bb59587528ecc5193b8af2ef6ead9503364bbe7a\"\u003e\u003ccode\u003ebb59587\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.0 to 4.32.0 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3625\"\u003e#3625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/26a688fcf87081fb56bd950f8feaef8d3a1abd06\"\u003e\u003ccode\u003e26a688f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.39'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.38.36...1.42.41\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dill` from 0.4.0 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a9d4d39c411296fb3608c4ffd142134559942d21\"\u003e\u003ccode\u003ea9d4d39\u003c/code\u003e\u003c/a\u003e tag: 0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/54370bde90434f98100c646d4b78575b3385840f\"\u003e\u003ccode\u003e54370bd\u003c/code\u003e\u003c/a\u003e cleanup outdated docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/bae7c217fea05667e1e20ea29239878f9bab6930\"\u003e\u003ccode\u003ebae7c21\u003c/code\u003e\u003c/a\u003e fix pypy311 registered, update travis ci (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/7daa95d0a5caaeeb0bf8705ec339215ff90c1425\"\u003e\u003ccode\u003e7daa95d\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.0 to 2.6.3 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/739\"\u003e#739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/5fbd3a77aa53205ea0b19dc343e69f5d8701e09e\"\u003e\u003ccode\u003e5fbd3a7\u003c/code\u003e\u003c/a\u003e sync with rtfd 15.10.0 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/fdb4b720e34d539589180ccbb68ac6cd04d8c927\"\u003e\u003ccode\u003efdb4b72\u003c/code\u003e\u003c/a\u003e update copyright for 2026, urllib3 to 2.6.0 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/e8c4221ffe177c48e50a569c8a72e669f7bd1ac1\"\u003e\u003ccode\u003ee8c4221\u003c/code\u003e\u003c/a\u003e avoid numpy segfault for 3.15.0a3 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/d948ecd748772f2812361982ec1496da0cd47b53\"\u003e\u003ccode\u003ed948ecd\u003c/code\u003e\u003c/a\u003e ensure valid class qualname in getsource (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a843f9013fab9a2cccedf1cec32e39aad1a81cad\"\u003e\u003ccode\u003ea843f90\u003c/code\u003e\u003c/a\u003e sync with rtd 15.4.1 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/08f613da299c61b7a3c6afc95c0d7a71ab63857b\"\u003e\u003ccode\u003e08f613d\u003c/code\u003e\u003c/a\u003e dict and weakref attribute are singletons in 3.15 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/uqfoundation/dill/compare/0.4.0...0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `evalidate` from 2.0.5 to 2.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaroslaff/evalidate/releases\"\u003eevalidate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.3 Is/IsNot\u003c/h2\u003e\n\u003cp\u003e2.1.3 \u003ccode\u003eIs\u003c/code\u003e and \u003ccode\u003eIsNot\u003c/code\u003e nodes are whitelisted by default\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eExpr.eval() accepts both local and global ctx (since 2.1.0)\u003c/p\u003e\n\u003cp\u003eTwo CLI utilities:\njg (json grep, fast small alternative to jq) added\ngenfakeproducts - simple utility to generate JSON lists for tests\u003c/p\u003e\n\u003cp\u003ein 2.1.1 - removed wrong dependency on \u0026quot;requests\u0026quot;\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/yaroslaff/evalidate/commit/411745abd02910f646f0fc215d235ae48fd027fc\"\u003e\u003ccode\u003e411745a\u003c/code\u003e\u003c/a\u003e Is/IsNot whitelisted\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/bc2606c7be297422be3a136d79b68cb2679cc4d1\"\u003e\u003ccode\u003ebc2606c\u003c/code\u003e\u003c/a\u003e [generate] extra\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/77bf1af5385a1dd436f0fc6ea6589fda1a5a2ad4\"\u003e\u003ccode\u003e77bf1af\u003c/code\u003e\u003c/a\u003e removed wrong requests dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/f50a2954124cffa87f69c61e738d75b3fa3a0cec\"\u003e\u003ccode\u003ef50a295\u003c/code\u003e\u003c/a\u003e dependency added: requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/a264b9d23cf1d17813bb5cc0c61a35535eff3206\"\u003e\u003ccode\u003ea264b9d\u003c/code\u003e\u003c/a\u003e README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/52c0fe8cf097d63c5c288d3e1067ce047923e876\"\u003e\u003ccode\u003e52c0fe8\u003c/code\u003e\u003c/a\u003e Expr accepts ctx_globals/ctx_locals. jg and genfakeproducts CLI tools.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaroslaff/evalidate/compare/v2.0.5...v2.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.3 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.1 (2026-01-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePublish Windows ARM binary wheels, where available.\u003c/li\u003e\n\u003cli\u003eFix compilation for 3.14t on Windows.\u003c/li\u003e\n\u003cli\u003ePublish Windows 3.14t binary wheels for Intel...\n\n_Description has been truncated_","html_url":"https://github.com/tdesveaux/buildbot/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tdesveaux%2Fbuildbot/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"},{"uuid":"3880983704","node_id":"PR_kwDOI9fKOs7AqVmc","number":42,"state":"closed","title":"build(deps): Bump the all-django-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T03:13:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T03:14:31.000Z","updated_at":"2026-03-01T03:13:51.000Z","time_to_close":2419158,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"all-django-dependencies","update_count":17,"packages":[{"name":"django","old_version":"5.1.8","new_version":"5.2.10","repository_url":"https://github.com/django/django"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"django-tailwind","old_version":"4.0.1","new_version":"4.4.2","repository_url":"https://github.com/timonweb/django-tailwind"},{"name":"django-browser-reload","old_version":"1.18.0","new_version":"1.21.0","repository_url":"https://github.com/adamchainz/django-browser-reload"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"django-admin-interface","old_version":"0.30.0","new_version":"0.32.0","repository_url":"https://github.com/fabiocaccamo/django-admin-interface"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-debug-toolbar","old_version":"5.1.0","new_version":"6.2.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-import-export","old_version":"4.3.7","new_version":"4.4.0","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.31.0","new_version":"0.33.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"django-simple-history","old_version":"3.8.0","new_version":"3.11.0","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"djhtml","old_version":"3.0.7","new_version":"3.0.10","repository_url":"https://github.com/rtts/djhtml"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pylint-django","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/pylint-dev/pylint-django"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-django-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.8` | `5.2.10` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [django-tailwind](https://github.com/timonweb/django-tailwind) | `4.0.1` | `4.4.2` |\n| [django-browser-reload](https://github.com/adamchainz/django-browser-reload) | `1.18.0` | `1.21.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.2.1` |\n| [django-admin-interface](https://github.com/fabiocaccamo/django-admin-interface) | `0.30.0` | `0.32.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `5.1.0` | `6.2.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.3.7` | `4.4.0` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.31.0` | `0.33.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.8.0` | `3.11.0` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [djhtml](https://github.com/rtts/djhtml) | `3.0.7` | `3.0.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pylint-django](https://github.com/pylint-dev/pylint-django) | `2.6.1` | `2.7.0` |\n\n\nUpdates `django` from 5.1.8 to 5.2.10\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8a0005cea04c3df104ca4d3e04c9e7664f2bffc7\"\u003e\u003ccode\u003e8a0005c\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.10 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e20d1c2e5574fca89c534c065c91a4df264538f2\"\u003e\u003ccode\u003ee20d1c2\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2ca2afdffdc7a33344f3189965b6ebc92196dc10\"\u003e\u003ccode\u003e2ca2afd\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8346657aaff7da999dca32574e6595f8c9543a0c\"\u003e\u003ccode\u003e8346657\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36376\"\u003e#36376\u003c/a\u003e -- Fixed --no-color for command help in Python 3.14+.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9cc231e8243091519f5d627cd02ee40bbb853ced\"\u003e\u003ccode\u003e9cc231e\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/27890\"\u003e#27890\u003c/a\u003e -- Avoided overwriting TMPDIR in runtests.py under forkse...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca0f62213911a77dd4a62e843db7e420cc98b78\"\u003e\u003ccode\u003e5ca0f62\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36499\"\u003e#36499\u003c/a\u003e -- Adjusted test_strip_tags following Python behavior cha...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/322b717af5d0e7a13da48aa6a7fd21f52e78896e\"\u003e\u003ccode\u003e322b717\u003c/code\u003e\u003c/a\u003e [5.2.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/27c508acf46d20c0737205fdf47d9e2fa29077fb\"\u003e\u003ccode\u003e27c508a\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3a8f7a8667c943857bf6ac4ed3cb611c8956c51\"\u003e\u003ccode\u003ea3a8f7a\u003c/code\u003e\u003c/a\u003e [5.2.x] Post-release version bump.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c14b756185c88f7f2eb745ff061f3c221fea9de7\"\u003e\u003ccode\u003ec14b756\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.9 release.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.8...5.2.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.2.1 to 12.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eResourceWarning\u003c/code\u003es in \u003ccode\u003eselftest.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9332\"\u003e#9332\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix testing good P mode BMP images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9319\"\u003e#9319\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest Python 3.15 pre-release \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9331\"\u003e#9331\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest ImageFont.ImageFont, in case freetype2 is not supported \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9287\"\u003e#9287\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Fedora 43 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9290\"\u003e#9290\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove Fedora 41 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9260\"\u003e#9260\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eType hints\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ImageFile context manager \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9367\"\u003e#9367\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAssert fp is not None \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8617\"\u003e#8617\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8dee8dd5ba4e592409db1a7fc11a61a51ba30f04\"\u003e\u003ccode\u003e8dee8dd\u003c/code\u003e\u003c/a\u003e Add ImageFile context manager (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9367\"\u003e#9367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b2d9bc3c766a9743d23a296a503ea2712cdc6745\"\u003e\u003ccode\u003eb2d9bc3\u003c/code\u003e\u003c/a\u003e Support saving APNG float durations (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9365\"\u003e#9365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/f130c10a9c07bc4a4fe793dc3dabb3fe8bd8a1bd\"\u003e\u003ccode\u003ef130c10\u003c/code\u003e\u003c/a\u003e Allow 1 mode images in MorphOp (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.2.1...12.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-tailwind` from 4.0.1 to 4.4.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/timonweb/django-tailwind/blob/master/CHANGELOG.md\"\u003edjango-tailwind's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.4.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue with CSS path configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue when \u003ccode\u003eraw_input\u003c/code\u003e is used instead of \u003ccode\u003einput\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStandalone Tailwind CSS binary support via \u003ca href=\"https://github.com/timonweb/pytailwindcss\"\u003epytailwindcss\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_USE_STANDALONE_BINARY\u003c/code\u003e setting to force standalone binary mode;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_STANDALONE_BINARY_VERSION\u003c/code\u003e setting to control standalone binary version (default: \u003ccode\u003ev4.1.16\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eAutomatic detection of standalone vs npm-based installations (checks for \u003ccode\u003epackage.json\u003c/code\u003e presence);\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eapp_template_v4_standalone/\u003c/code\u003e cookiecutter template for standalone binary apps;\u003c/li\u003e\n\u003cli\u003eUpdates documentation;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.js\u003c/code\u003e is now optional when using standalone binary mode;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaces Poetry with UV for dependency management;\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eextract_host_and_port\u003c/code\u003e to support standalone port numbers (e.g., \u003ccode\u003epython manage.py runserver 55555\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eUpdates tox configuration to use \u003ccode\u003edev\u003c/code\u003e dependency group;\u003c/li\u003e\n\u003cli\u003eRemoves Docker instructions from documentation;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003emanage.py tailwind plugin_install\u003c/code\u003e command to manage Tailwind CSS plugins;\u003c/li\u003e\n\u003cli\u003eAdds optional daisyUI support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003edev\u003c/code\u003e command that starts Django development server and Tailwind watcher simultaneously;\u003c/li\u003e\n\u003cli\u003eAutomatically installs Honcho if not available when using \u003ccode\u003edev\u003c/code\u003e command;\u003c/li\u003e\n\u003cli\u003eCreates \u003ccode\u003eProcfile.tailwind\u003c/code\u003e for customizable process management;\u003c/li\u003e\n\u003cli\u003eUpdates documentation with \u003ccode\u003edev\u003c/code\u003e command usage;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Tailwind CSS v4+;\u003c/li\u003e\n\u003cli\u003eSets Tailwind CSS v4+ as the default version, with the option to use v3.x via \u003ccode\u003e--tailwind-version 3\u003c/code\u003e flag;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBrings Python 3.10 support back;\u003c/li\u003e\n\u003cli\u003eAdds Python 3.13 support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds \u003ccode\u003e--no-package-lock\u003c/code\u003e option to \u003ccode\u003epython manage.py tailwind install\u003c/code\u003e command to optionally skip creating\n\u003ccode\u003epackage-lock.json\u003c/code\u003e file;\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/timonweb/django-tailwind/commit/dfb5a0004cc06ba9106fa0e15f479dabaa8a0f29\"\u003e\u003ccode\u003edfb5a00\u003c/code\u003e\u003c/a\u003e Releases 4.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/216c9e9b65737711748a6085071b040c9684c137\"\u003e\u003ccode\u003e216c9e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/244\"\u003e#244\u003c/a\u003e from synthghost/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/2b5a013b2310b9e101df93a481512e721e868797\"\u003e\u003ccode\u003e2b5a013\u003c/code\u003e\u003c/a\u003e Fix settings-based CSS path configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/bfd4250f812a4bb286a29ce1a0dd5e758709201e\"\u003e\u003ccode\u003ebfd4250\u003c/code\u003e\u003c/a\u003e Add Star History section to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4c8ef987284a9dc3bd837d980740efabb4088287\"\u003e\u003ccode\u003e4c8ef98\u003c/code\u003e\u003c/a\u003e Delete manage.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4b0e42826fbeeb8a2a9df24f8ec911d61fdd7003\"\u003e\u003ccode\u003e4b0e428\u003c/code\u003e\u003c/a\u003e Releases 4.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/46fb9a99f278582b4c9f4a8abb027c442e5e26df\"\u003e\u003ccode\u003e46fb9a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/241\"\u003e#241\u003c/a\u003e from evangeloskp/fix-distlib-import-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/34150e8de77ed499c98c0352e15030691b2bf623\"\u003e\u003ccode\u003e34150e8\u003c/code\u003e\u003c/a\u003e Fix ImportError by replacing distlib.compat.raw_input with built-in input()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/91c509a11d10f35997fcc2bce8b9241577831f68\"\u003e\u003ccode\u003e91c509a\u003c/code\u003e\u003c/a\u003e Update CI badge in README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4ac8150297c0b655f368f98faf9be8ec619b50f0\"\u003e\u003ccode\u003e4ac8150\u003c/code\u003e\u003c/a\u003e Releases 4.4.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/timonweb/django-tailwind/compare/4.0.1...4.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-browser-reload` from 1.18.0 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-browser-reload/blob/main/CHANGELOG.rst\"\u003edjango-browser-reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.0 (2025-09-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Content Security Policy (CSP) nonce support to the listener script tag, in both the middleware and the Jinja template tag.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#340](https://github.com/adamchainz/django-browser-reload/issues/340) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/340\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.20.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.19.0 (2025-09-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the django-jinja template backend.\u003c/p\u003e\n\u003cp\u003eThanks to Jake Howard in \u003ccode\u003ePR [#309](https://github.com/adamchainz/django-browser-reload/issues/309) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/309\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d21e7d8a04381dedf0047b11f1cbefab02dc2567\"\u003e\u003ccode\u003ed21e7d8\u003c/code\u003e\u003c/a\u003e Version 1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/41835a58b7b68e0e329ff1a3b9b127342675260c\"\u003e\u003ccode\u003e41835a5\u003c/code\u003e\u003c/a\u003e Add CSP nonce support (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/3571cb8b20440020499f1bfd30bed2cef5a84b62\"\u003e\u003ccode\u003e3571cb8\u003c/code\u003e\u003c/a\u003e Improve usage and description\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/1061afd357cabf6c1e674b6581d5057d82e7983c\"\u003e\u003ccode\u003e1061afd\u003c/code\u003e\u003c/a\u003e Promote django-watchfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ec228460b7756eab7e9488b1aa59824cf8646997\"\u003e\u003ccode\u003eec22846\u003c/code\u003e\u003c/a\u003e Remove outdated ASGI note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/10301ed78fe5e7a268bfd155f45fa0d3703fc0f9\"\u003e\u003ccode\u003e10301ed\u003c/code\u003e\u003c/a\u003e Improve tagline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d944e3371e43ad4d7db0baa47f1a2c050bc42e32\"\u003e\u003ccode\u003ed944e33\u003c/code\u003e\u003c/a\u003e Version 1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/b77a1dcd7bc22705b65d4b553a30e10fab536223\"\u003e\u003ccode\u003eb77a1dc\u003c/code\u003e\u003c/a\u003e Correct testing of Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/9794a774f5bf2c7b18a7adbb420fdea709a7b39b\"\u003e\u003ccode\u003e9794a77\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ca5fbd0e15f19e0ee0ec67963035a0bb3c7a5b5a\"\u003e\u003ccode\u003eca5fbd0\u003c/code\u003e\u003c/a\u003e Version 1.19.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-browser-reload/compare/1.18.0...1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` 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/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env from FIFOs (Unix) by \u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) by \u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini by \u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml by \u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\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/theskumar/python-dotenv/commit/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-admin-interface` from 0.30.0 to 0.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases\"\u003edjango-admin-interface's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.30.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/blob/main/CHANGELOG.md\"\u003edjango-admin-interface's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.32.0\"\u003e0.32.0\u003c/a\u003e - 2025-12-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.1\"\u003e0.31.1\u003c/a\u003e - 2025-12-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.0\"\u003e0.31.0\u003c/a\u003e - 2025-11-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.30.1\"\u003e0.30.1\u003c/a\u003e - 2025-06-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/commit/5d95d802f4085b1215cc6a62fa6d8458b7339c3b\"\u003e\u003ccode\u003e5d95d80\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/2117573b233cc989e340bdfb3ea5b9977fe99f7e\"\u003e\u003ccode\u003e2117573\u003c/code\u003e\u003c/a\u003e Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/d45c09e62a8654a3f90bf3fc9fa96d413fc58afc\"\u003e\u003ccode\u003ed45c09e\u003c/code\u003e\u003c/a\u003e Update .pre-commit-config.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fea108a89016484fcf0fd90693aa73382a6edbdb\"\u003e\u003ccode\u003efea108a\u003c/code\u003e\u003c/a\u003e Update FUNDING.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/052f8e60be23463dc8e98e8d90f08ba321d62f8e\"\u003e\u003ccode\u003e052f8e6\u003c/code\u003e\u003c/a\u003e Upgrade \u003ccode\u003ecreate-matrix-action\u003c/code\u003e version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8474b3313448ca48dffdd66e9b014becc81cd423\"\u003e\u003ccode\u003e8474b33\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/1cbb618ac8cd3a1ad67dcff4fcea9528411dc1d6\"\u003e\u003ccode\u003e1cbb618\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/bcb6053e8390883ee1375ae7d44d3024f55d3538\"\u003e\u003ccode\u003ebcb6053\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8de832489e40d0f5e44c2eb0f1cdb024b21ae9c1\"\u003e\u003ccode\u003e8de8324\u003c/code\u003e\u003c/a\u003e Update translations.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fd9fa790a6576b15b8fc6c466ce72332eab33fab\"\u003e\u003ccode\u003efd9fa79\u003c/code\u003e\u003c/a\u003e fix modal popup navigation links (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/compare/0.30.0...0.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\u003c/code\u003e_)\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 5.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate RedirectsPanel in favor of the HistoryPanel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2223\"\u003edjango-commons/django-debug-toolbar#2223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd cache view to example app by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2243\"\u003edjango-commons/django-debug-toolbar#2243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd zizmor for GHA security analysis by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2201\"\u003edjango-commons/django-debug-toolbar#2201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd indent size of 2 for yml files. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2244\"\u003edjango-commons/django-debug-toolbar#2244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReduce the number of test runs in CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2248\"\u003edjango-commons/django-debug-toolbar#2248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStore the code coverage files on each test run for CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2245\"\u003edjango-commons/django-debug-toolbar#2245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse double-quotes for GITHUB_REF_NAME shell variable. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2250\"\u003edjango-commons/django-debug-toolbar#2250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2249\"\u003edjango-commons/django-debug-toolbar#2249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2251\"\u003edjango-commons/django-debug-toolbar#2251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersist the credentials because coverage_comment needs them. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2252\"\u003edjango-commons/django-debug-toolbar#2252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow cache alias instead of backend repr in calls table by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2219\"\u003edjango-commons/django-debug-toolbar#2219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Django 5.0 to save some CI resources by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2253\"\u003edjango-commons/django-debug-toolbar#2253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBye Python 39 by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2254\"\u003edjango-commons/django-debug-toolbar#2254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for enabling/disabling SQLPanel tracking of toolbar model queries by \u003ca href=\"https://github.com/theShinigami\"\u003e\u003ccode\u003e@​theShinigami\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2211\"\u003edjango-commons/django-debug-toolbar#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce toolbar vs panel organization of configs. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2257\"\u003edjango-commons/django-debug-toolbar#2257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore monospace font for templates and stacktraces by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2261\"\u003edjango-commons/django-debug-toolbar#2261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test to confirm assertNumQueries by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2259\"\u003edjango-commons/django-debug-toolbar#2259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django built-in CSP nonce support by \u003ca href=\"https://github.com/ahumeau\"\u003e\u003ccode\u003e@​ahumeau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2267\"\u003edjango-commons/django-debug-toolbar#2267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dependabot cooldown. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2270\"\u003edjango-commons/django-debug-toolbar#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the hash and version of python-coverage-comment-action by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2269\"\u003edjango-commons/django-debug-toolbar#2269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix string representation of values in settings panel by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2263\"\u003edjango-commons/django-debug-toolbar#2263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare support for Django 6.0 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2272\"\u003edjango-commons/django-debug-toolbar#2272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude dependabot and pre-commit bot commits from GitHub release notes by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2278\"\u003edjango-commons/django-debug-toolbar#2278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove comment for clarity in \u003ccode\u003eDebugToolbarMiddleware\u003c/code\u003e call method by \u003ca href=\"https://github.com/rnazali\"\u003e\u003ccode\u003e@​rnazali\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2283\"\u003edjango-commons/django-debug-toolbar#2283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type hints for History Panel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2247\"\u003edjango-commons/django-debug-toolbar#2247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize CI with concurrency by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2287\"\u003edjango-commons/django-debug-toolbar#2287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd LLM usage checkbox to PR template by \u003ca href=\"https://github.com/yeongbin05\"\u003e\u003ccode\u003e@​yeongbin05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2294\"\u003edjango-commons/django-debug-toolbar#2294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 6.2.0 by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2298\"\u003edjango-commons/django-debug-toolbar#2298\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/theShinigami\"\u003e\u003ccode\u003e@​theShinigami\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2211\"\u003edjango-commons/django-debug-toolbar#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahumeau\"\u003e\u003ccode\u003e@​ahumeau\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2267\"\u003edjango-commons/django-debug-toolbar#2267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnazali\"\u003e\u003ccode\u003e@​rnazali\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2283\"\u003edjango-commons/django-debug-toolbar#2283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2287\"\u003edjango-commons/django-debug-toolbar#2287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yeongbin05\"\u003e\u003ccode\u003e@​yeongbin05\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2294\"\u003edjango-commons/django-debug-toolbar#2294\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-commons/django-debug-toolbar/compare/6.1.0...6.2.0\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/6.1.0...6.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://django-debug-toolbar.readthedocs.io/en/latest/changes.html#:~:text=6.1.0%20(2025-10-30)\"\u003echange log here\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eCommits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a note about the default password in make example by \u003ca href=\"https://github.com/abdibaker\"\u003e\u003ccode\u003e@​abdibaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2180\"\u003edjango-commons/django-debug-toolbar#2180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved logging about the toolbar failing to serialize a value into JSON by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2181\"\u003edjango-commons/django-debug-toolbar#2181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst\"\u003edjango-debug-toolbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.0 (2026-01-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eRedirectsPanel\u003c/code\u003e in favor of \u003ccode\u003eHistoryPanel\u003c/code\u003e for viewing\ntoolbar data from redirected requests.\u003c/li\u003e\n\u003cli\u003eFixed support for generating code coverage comments in PRs.\u003c/li\u003e\n\u003cli\u003eAdded Django 6.0 to the testing matrix. Removed Django 5.0 to save CI\nresources.\u003c/li\u003e\n\u003cli\u003eShow the cache backend alias and cache backend class name instead of\nthe cache instance in the cache panel.\u003c/li\u003e\n\u003cli\u003eDropped support for the Python 3.9, it has reached its end of life date.\u003c/li\u003e\n\u003cli\u003eToggle tracking the toolbar's queries when using\n\u003ccode\u003edebug_toolbar.store.DatabaseStore\u003c/code\u003e with \u003ccode\u003eSKIP_TOOLBAR_QUERIES\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed font family for code blocks and stack traces in the toolbar.\u003c/li\u003e\n\u003cli\u003eAdded test to confirm Django's \u003ccode\u003eTestCase.assertNumQueries\u003c/code\u003e works.\u003c/li\u003e\n\u003cli\u003eFixed string representation of values in settings panel.\u003c/li\u003e\n\u003cli\u003eDeclared support for Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.1.0 (2025-10-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for async to timer panel.\u003c/li\u003e\n\u003cli\u003eAdded a note about the default password in \u003ccode\u003emake example\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemoved logging about the toolbar failing to serialize a value into JSON.\u003c/li\u003e\n\u003cli\u003eMoved the the import statement of \u003ccode\u003edebug_toolbar.urls\u003c/code\u003e to within the if\nstatement's scope on the installation documentation.\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eStoredDebugToolbar.from_store\u003c/code\u003e to always create a panel key and\nclass instance, regardless if any data was generated.\u003c/li\u003e\n\u003cli\u003eFixed selenium tests for CI by using psycopg for Python 3.13 runs.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCommunityPanel\u003c/code\u003e containing links to documentation and resources.\u003c/li\u003e\n\u003cli\u003eUpgraded CI \u003ccode\u003epostgis\u003c/code\u003e version to 17-3.5.\u003c/li\u003e\n\u003cli\u003eAdded how to generate the documentation locally to the contributing\ndocumentation.\u003c/li\u003e\n\u003cli\u003eUpdated logic that forces values to strings (\u003ccode\u003eforce_str\u003c/code\u003e) to render\n\u0026quot;Django Debug Toolbar was unable to parse value.\u0026quot; when there's a decoding\nerror.\u003c/li\u003e\n\u003cli\u003eUpdated docs to show incompatibility with Django Channels.\u003c/li\u003e\n\u003cli\u003eHide the toolbar's migrations unless \u003ccode\u003edebug_toolbar.store.DatabaseStore\u003c/code\u003e\nis being used. This may change in the future.\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003edebug_toolbar.HistoryEntry\u003c/code\u003e as a model unless\n\u003ccode\u003edebug_toolbar.store.DatabaseStore\u003c/code\u003e is being used. This may change in the\nfuture.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0.0 (2025-07-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for checking if pytest as the test runner when determining\nif tests are running.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e function to check Docker host IP address\nwhen running inside Docker containers.\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/django-commons/django-debug-toolbar/commit/0b7c8d8edee201bd535b6d40a94a0f1167cf9867\"\u003e\u003ccode\u003e0b7c8d8\u003c/code\u003e\u003c/a\u003e Version 6.2.0 (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2298\"\u003e#2298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/33ecfd1776f301229d2bc5f52d4f769f04972f29\"\u003e\u003ccode\u003e33ecfd1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2282\"\u003e#2282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/03edf77c39687975d0b77c4c55e86e1624d1b9bc\"\u003e\u003ccode\u003e03edf77\u003c/code\u003e\u003c/a\u003e Add LLM usage checkbox to PR template (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2294\"\u003e#2294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/8ebab3d02c5569adc063305749c21f287aadc77a\"\u003e\u003ccode\u003e8ebab3d\u003c/code\u003e\u003c/a\u003e Cancel in-progress runs on new pushes (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2287\"\u003e#2287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/c0d457bc0454251bf1d35543f4a4e4d35ef96ef6\"\u003e\u003ccode\u003ec0d457b\u003c/code\u003e\u003c/a\u003e Refactor type hints and imports in history panel and views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/ac02a69ef48311360a11c1d3e...\n\n_Description has been truncated_","html_url":"https://github.com/chnm/graffitihouse/pull/42","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chnm%2Fgraffitihouse/issues/42","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42/packages"},{"uuid":"3880575384","node_id":"PR_kwDOEn_p3c7Ao6VH","number":237,"state":"closed","title":"chore: Bump the python-backend-dependencies group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-03T08:38:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T00:46:23.000Z","updated_at":"2026-02-03T08:38:35.000Z","time_to_close":201130,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","group_name":"python-backend-dependencies","update_count":13,"packages":[{"name":"billiard","old_version":"4.2.2","new_version":"4.2.4","repository_url":"https://github.com/celery/billiard"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"falcon","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/falconry/falcon"},{"name":"gunicorn","old_version":"23.0.0","new_version":"24.1.1","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"kombu","old_version":"5.5.4","new_version":"5.6.2","repository_url":"https://github.com/celery/kombu"},{"name":"oslo-config","old_version":"10.0.0","new_version":"10.2.0"},{"name":"oslo-i18n","old_version":"6.6.0","new_version":"6.7.1"},{"name":"pbr","old_version":"7.0.1","new_version":"7.0.3"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"stevedore","old_version":"5.5.0","new_version":"5.6.0"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-backend-dependencies group with 13 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [billiard](https://github.com/celery/billiard) | `4.2.2` | `4.2.4` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [falcon](https://github.com/falconry/falcon) | `4.1.0` | `4.2.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `24.1.1` |\n| [kombu](https://github.com/celery/kombu) | `5.5.4` | `5.6.2` |\n| [oslo-config](https://docs.openstack.org/oslo.config) | `10.0.0` | `10.2.0` |\n| [oslo-i18n](https://docs.openstack.org/oslo.i18n) | `6.6.0` | `6.7.1` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `7.0.1` | `7.0.3` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.46` |\n| [stevedore](https://docs.openstack.org/stevedore) | `5.5.0` | `5.6.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.0` |\n\n\nUpdates `billiard` from 4.2.2 to 4.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/billiard/releases\"\u003ebilliard's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEliminate usage of 'return' in 'finally' blocks by \u003ca href=\"https://github.com/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/438\"\u003ecelery/billiard#438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.4 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/439\"\u003ecelery/billiard#439\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/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/438\"\u003ecelery/billiard#438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/billiard/compare/v4.2.3...v4.2.4\"\u003ehttps://github.com/celery/billiard/compare/v4.2.3...v4.2.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that task results are delivered during pool shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/435\"\u003ecelery/billiard#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.3 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/436\"\u003ecelery/billiard#436\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/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/435\"\u003ecelery/billiard#435\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/billiard/compare/v4.2.2...v4.2.3\"\u003ehttps://github.com/celery/billiard/compare/v4.2.2...v4.2.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/celery/billiard/blob/main/CHANGES.txt\"\u003ebilliard's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.4 - 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEliminate usage of 'return' in 'finally' blocks (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.4 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.3 - 2025-11-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that task results are delivered during pool shutdown (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.3 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/436\"\u003e#436\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/celery/billiard/commit/69c2f296c2b36622a90c548f26c940712cb9a1df\"\u003e\u003ccode\u003e69c2f29\u003c/code\u003e\u003c/a\u003e Prepare for release: v4.2.4 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/973c773fee4ccd1ab1151d0801905176b284075d\"\u003e\u003ccode\u003e973c773\u003c/code\u003e\u003c/a\u003e Eliminate usage of 'return' in 'finally' blocks (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/51153949934c247ac23de990eee4073adcf08083\"\u003e\u003ccode\u003e5115394\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/437\"\u003e#437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/e8f51d1995cf251787001683dbf443098d8b0ed7\"\u003e\u003ccode\u003ee8f51d1\u003c/code\u003e\u003c/a\u003e Prepare for release: v4.2.3 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/436\"\u003e#436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/8603172ab818f5069dd191dfaa3eb0a7653c6dda\"\u003e\u003ccode\u003e8603172\u003c/code\u003e\u003c/a\u003e Ensure that task results are delivered during pool shutdown (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/849a3e8414cae0ba953d7c164129c1320e2a241d\"\u003e\u003ccode\u003e849a3e8\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3 to 4 in the github-actions group\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/celery/billiard/compare/v4.2.2...v4.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\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/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `falcon` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/falconry/falcon/releases\"\u003efalcon's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cp\u003eFalcon 4.2.0 primarily contains typing enhancements and performance optimizations. This release also marks the debut of pre-compiled wheels for the \u003ca href=\"https://falcon.readthedocs.io/en/stable/user/faq.html#faq-free-threading\"\u003efree-threaded\u003c/a\u003e CPython 3.14 build. \u003ca href=\"https://falcon.readthedocs.io/en/stable/community/help.html#chat\"\u003eLet us know\u003c/a\u003e if you are experimenting with scaling Falcon applications using free-threading!\u003c/p\u003e\n\u003cp\u003e🐍 \u003ca href=\"https://pypi.org/project/falcon/4.2.0/\"\u003eFalcon 4.2.0 on PyPI\u003c/a\u003e\n📚 \u003ca href=\"https://falcon.readthedocs.io/en/stable/changes/4.2.0.html\"\u003eChangelog on RtD\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe typing improvements focus on making the WSGI and ASGI App types \u003ca href=\"https://falcon.readthedocs.io/en/stable/api/typing.html#generic-app-types\"\u003egeneric\u003c/a\u003e (parametrized by the request and response types). This should make it significantly easier to properly annotate applications that leverage custom request and/or response types.\u003c/p\u003e\n\u003cp\u003eAdditionally, we have fixed a reproducibility issue (thanks to \u003ca href=\"https://github.com/bmwiedemann\"\u003e\u003ccode\u003e@​bmwiedemann\u003c/code\u003e\u003c/a\u003e from openSUSE for reporting!) in our documentation build process. Regarding packaging Falcon for distributions in general, we would like to remind you of the \u003ca href=\"https://falcon.readthedocs.io/en/stable/community/packaging.html\"\u003ePackaging Guide\u003c/a\u003e that was published with the previous Falcon release (4.1.0). We hope this guide proves useful.\u003c/p\u003e\n\u003cp\u003eThis release also incorporates a number of pull requests submitted by our community. Sincere thanks to all 8 contributors who made this release possible!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AyanAhmedKhan\"\u003e\u003ccode\u003e@​AyanAhmedKhan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kemingy\"\u003e\u003ccode\u003e@​kemingy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MannXo\"\u003e\u003ccode\u003e@​MannXo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sonephyo\"\u003e\u003ccode\u003e@​sonephyo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TudorGR\"\u003e\u003ccode\u003e@​TudorGR\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x612skm\"\u003e\u003ccode\u003e@​x612skm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0rc1\u003c/h2\u003e\n\u003cp\u003eThis is the first release candidate of Falcon 4.2.0.\u003c/p\u003e\n\u003cp\u003eWe would greatly appreciate it if you could help us with testing on your apps!\nIf you use type checking, please also check how the new \u003ca href=\"https://falcon.readthedocs.io/en/latest/api/typing.html#generic-app-types\"\u003egeneric App types\u003c/a\u003e (and other typing improvements) work for you.\n\u003ca href=\"https://falcon.readthedocs.io/en/latest/community/help.html#chat\"\u003eLet us know\u003c/a\u003e if you run into any issues!\u003c/p\u003e\n\u003cp\u003e:snake: \u003ca href=\"https://pypi.org/project/falcon/4.2.0rc1/\"\u003e4.2.0rc1 on PyPI\u003c/a\u003e\n:books: \u003ca href=\"https://falcon.readthedocs.io/en/latest/changes/4.2.0.html\"\u003eChangelog on RtD\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAs always, you can grab this pre-release \u003ca href=\"https://pypi.org/project/falcon/4.2.0rc1/\"\u003efrom PyPI\u003c/a\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install falcon==4.2.0rc1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eThank You!\u003c/strong\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/falconry/falcon/commit/554458995d5fb233a1065de464bce3cbeeaa5a35\"\u003e\u003ccode\u003e5544589\u003c/code\u003e\u003c/a\u003e chore: prepare 4.2.0 stable (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2575\"\u003e#2575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/684adbbf0cbd960a75b5db496436fbc03b269bb2\"\u003e\u003ccode\u003e684adbb\u003c/code\u003e\u003c/a\u003e fix(cibw): use the correct arch/os for ARM cp314t wheels (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2573\"\u003e#2573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/d31d9ac35daab77770bae18fce4b0be9bd97c05e\"\u003e\u003ccode\u003ed31d9ac\u003c/code\u003e\u003c/a\u003e chore(release): prepare \u003ccode\u003e4.2.0rc1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2571\"\u003e#2571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/a75d864e21f6c08dbfce77138296ec917857c3b0\"\u003e\u003ccode\u003ea75d864\u003c/code\u003e\u003c/a\u003e feat(platform): provide selected \u003ccode\u003ecp314t\u003c/code\u003e (free-threading) wheels (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2555\"\u003e#2555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/4dcd4fe6af04a3a97791ab662508c2b110496a0f\"\u003e\u003ccode\u003e4dcd4fe\u003c/code\u003e\u003c/a\u003e docs: polish documentation before 4.2.0 release (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2570\"\u003e#2570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/2702ae644c31cee677bff098e8e7e90290eb08ed\"\u003e\u003ccode\u003e2702ae6\u003c/code\u003e\u003c/a\u003e fix: ensure reproducible documentation builds wrt \u003ccode\u003eSOURCE_DATE_EPOCH\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2568\"\u003e#2568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/99717428115184f95892ea3552446f1c2717a82d\"\u003e\u003ccode\u003e9971742\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003edevcontainer\u003c/code\u003e to Python 3.13 with improved setup (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2566\"\u003e#2566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/73b76371c251863c13694a8564562a7a4e14f55b\"\u003e\u003ccode\u003e73b7637\u003c/code\u003e\u003c/a\u003e Fixes Raises section of some request method docstrings (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2557\"\u003e#2557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/d7d203db5fe9c61d128a1e2ff2ad5f52a82f5bee\"\u003e\u003ccode\u003ed7d203d\u003c/code\u003e\u003c/a\u003e chore: add a new Gold Patron LambdaTest (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2554\"\u003e#2554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/6bee1aa72e97bcffa0ab57be6e6fddc8e520dcf6\"\u003e\u003ccode\u003e6bee1aa\u003c/code\u003e\u003c/a\u003e feat(routing): add support for QUERY HTTP method (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2541\"\u003e#2541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/falconry/falcon/compare/4.1.0...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 24.1.1\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\u003e24.1.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eforwarded_allow_ips\u003c/code\u003e and \u003ccode\u003eproxy_allow_ips\u003c/code\u003e to remain as strings for backward\ncompatibility with external tools like uvicorn. Network validation now uses strict\nmode to detect invalid CIDR notation (e.g., \u003ccode\u003e192.168.1.1/24\u003c/code\u003e where host bits are set)\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3458\"\u003e#3458\u003c/a\u003e,\n[PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3459\"\u003e#3459\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3459\"\u003ebenoitc/gunicorn#3459\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/benoitc/gunicorn/compare/24.1.0...24.1.1\"\u003ehttps://github.com/benoitc/gunicorn/compare/24.1.0...24.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eGunicorn 24.1.0\u003c/h2\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eOfficial Docker Image\u003c/strong\u003e: Gunicorn now publishes official Docker images to GitHub Container Registry ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3454\"\u003e#3454\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3454\"\u003ebenoitc/gunicorn#3454\u003c/a\u003e))\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvailable at \u003ccode\u003eghcr.io/benoitc/gunicorn\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBased on Python 3.12 slim image\u003c/li\u003e\n\u003cli\u003eUses recommended worker formula (2 × CPU + 1)\u003c/li\u003e\n\u003cli\u003eConfigurable via environment variables\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePROXY Protocol v2 Support\u003c/strong\u003e: Extended PROXY protocol implementation to support the binary v2 format in addition to the existing text-based v1 format ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3451\"\u003e#3451\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3451\"\u003ebenoitc/gunicorn#3451\u003c/a\u003e))\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ccode\u003e--proxy-protocol\u003c/code\u003e modes: \u003ccode\u003eoff\u003c/code\u003e, \u003ccode\u003ev1\u003c/code\u003e, \u003ccode\u003ev2\u003c/code\u003e, \u003ccode\u003eauto\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto\u003c/code\u003e mode (default when enabled) detects v1 or v2 automatically\u003c/li\u003e\n\u003cli\u003ev2 binary format is more efficient and supports additional metadata\u003c/li\u003e\n\u003cli\u003eWorks with HAProxy, AWS NLB/ALB, and other PROXY protocol v2 sources\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCIDR Network Support\u003c/strong\u003e: \u003ccode\u003e--forwarded-allow-ips\u003c/code\u003e and \u003ccode\u003e--proxy-allow-from\u003c/code\u003e now accept CIDR notation (e.g., \u003ccode\u003e192.168.0.0/16\u003c/code\u003e) for specifying trusted networks ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3449\"\u003e#3449\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3449\"\u003ebenoitc/gunicorn#3449\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSocket Backlog Metric\u003c/strong\u003e: New \u003ccode\u003egunicorn.socket.backlog\u003c/code\u003e gauge metric reports the current socket backlog size on Linux systems ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3450\"\u003e#3450\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3450\"\u003ebenoitc/gunicorn#3450\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eInotifyReloader Enhancement\u003c/strong\u003e: The inotify-based reloader now watches newly imported modules, not just those loaded at startup ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3447\"\u003e#3447\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3447\"\u003ebenoitc/gunicorn#3447\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix signal handling regression where SIGCLD alias caused \u0026quot;Unhandled signal: cld\u0026quot; errors on Linux when workers fail during boot (\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3453\"\u003e#3453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix socket blocking mode on keepalive connections preventing SSL handshake failures with async workers ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3452\"\u003e#3452\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3452\"\u003ebenoitc/gunicorn#3452\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eUse smaller buffer size in \u003ccode\u003efinish_body()\u003c/code\u003e for faster timeout detection on slow or abandoned connections ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3453\"\u003e#3453\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3453\"\u003ebenoitc/gunicorn#3453\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003eSSLWantReadError\u003c/code\u003e in \u003ccode\u003efinish_body()\u003c/code\u003e to prevent worker hangs during SSL renegotiation ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3448\"\u003e#3448\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3448\"\u003ebenoitc/gunicorn#3448\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eLog SIGTERM as info level instead of warning to reduce noise in orchestrated environments ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3446\"\u003e#3446\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3446\"\u003ebenoitc/gunicorn#3446\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003ePrint exception details to stderr when worker fails to boot ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3443\"\u003e#3443\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3443\"\u003ebenoitc/gunicorn#3443\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eunreader.unread()\u003c/code\u003e to prepend data to buffer instead of appending ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3442\"\u003e#3442\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3442\"\u003ebenoitc/gunicorn#3442\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003eRecursionError\u003c/code\u003e when pickling Config objects ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3441\"\u003e#3441\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3441\"\u003ebenoitc/gunicorn#3441\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eUse proper exception chaining with \u003ccode\u003eraise from\u003c/code\u003e in glogging.py ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3440\"\u003e#3440\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3440\"\u003ebenoitc/gunicorn#3440\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install gunicorn==24.1.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/benoitc/gunicorn/commit/375e79e95b78f81b70af0c1ae8e32b7f4beee273\"\u003e\u003ccode\u003e375e79e\u003c/code\u003e\u003c/a\u003e release: bump version to 24.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ad0c12de9813e1616574dd029517f9b58f4b7c3b\"\u003e\u003ccode\u003ead0c12d\u003c/code\u003e\u003c/a\u003e docs: add sponsors section to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/70200eef468735002b88f3a1ec0e12e9e03c9190\"\u003e\u003ccode\u003e70200ee\u003c/code\u003e\u003c/a\u003e chore: add GitHub Sponsors funding configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/684180411695af8d7e19f71314888c51a021609b\"\u003e\u003ccode\u003e6841804\u003c/code\u003e\u003c/a\u003e docs: remove incorrect PR reference from Docker changelog entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/abce0ca9cb873a55c28a42714cf3c636d7244b06\"\u003e\u003ccode\u003eabce0ca\u003c/code\u003e\u003c/a\u003e docs: add 24.1.1 changelog entry for forwarded_allow_ips fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e9a3f30a0f2e4d91a39afa51ffc8f22a76d9c776\"\u003e\u003ccode\u003ee9a3f30\u003c/code\u003e\u003c/a\u003e fix: keep forwarded_allow_ips as strings for backward compatibility (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3459\"\u003e#3459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d73ff4b1d84cdd4637b914415ad8065c9cf6143c\"\u003e\u003ccode\u003ed73ff4b\u003c/code\u003e\u003c/a\u003e docs: update main changelog with 24.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/53f2c310123f727d5b0711e9220c3847a9730890\"\u003e\u003ccode\u003e53f2c31\u003c/code\u003e\u003c/a\u003e ci: allow docs deploy on workflow_dispatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/eab5f0b1a5fd2c9e8b334bfd735b1017adaff131\"\u003e\u003ccode\u003eeab5f0b\u003c/code\u003e\u003c/a\u003e ci: trigger Docker publish on tags with or without v prefix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/a20d3fb2206d785ce73b2503ad9a51e7a1a10238\"\u003e\u003ccode\u003ea20d3fb\u003c/code\u003e\u003c/a\u003e docs: add Docker image to 24.1.0 changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...24.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kombu` from 5.5.4 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/kombu/releases\"\u003ekombu's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify requirements given Py3.9+ baseline by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2414\"\u003ecelery/kombu#2414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: credential_provider compatibility issue with redis \u0026lt; 5.3.0 by \u003ca href=\"https://github.com/alaminopu\"\u003e\u003ccode\u003e@​alaminopu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2423\"\u003ecelery/kombu#2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SentinelChannel to pass ACL credentials to master_for() by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2426\"\u003ecelery/kombu#2426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the error handling in ack deadline extension by \u003ca href=\"https://github.com/tungntpham\"\u003e\u003ccode\u003e@​tungntpham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2430\"\u003ecelery/kombu#2430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2434\"\u003ecelery/kombu#2434\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/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2414\"\u003ecelery/kombu#2414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2426\"\u003ecelery/kombu#2426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungntpham\"\u003e\u003ccode\u003e@​tungntpham\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2430\"\u003ecelery/kombu#2430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/kombu/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/kombu/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure hub close does also remove global event loop reference by \u003ca href=\"https://github.com/oliverhaas\"\u003e\u003ccode\u003e@​oliverhaas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2404\"\u003ecelery/kombu#2404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: default value for SQS's receive message by \u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2405\"\u003ecelery/kombu#2405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: add support for credential_provider to redis broker by \u003ca href=\"https://github.com/alaminopu\"\u003e\u003ccode\u003e@​alaminopu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2408\"\u003ecelery/kombu#2408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2416\"\u003ecelery/kombu#2416\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/oliverhaas\"\u003e\u003ccode\u003e@​oliverhaas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2404\"\u003ecelery/kombu#2404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2405\"\u003ecelery/kombu#2405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alaminopu\"\u003e\u003ccode\u003e@​alaminopu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2408\"\u003ecelery/kombu#2408\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/kombu/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/kombu/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003ch3\u003eQoS Max Prefetch Limit \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2348\"\u003ecelery/kombu#2348\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003ePrevent Out Of Memory crashes when queues flood with ETA/countdown tasks. The new optional \u003ccode\u003emax_prefetch\u003c/code\u003e parameter caps how many messages workers hold in memory. Defaults to unlimited (\u003ccode\u003eNone\u003c/code\u003e) to preserve existing behavior.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom kombu.common import QoS\n\u003ch1\u003eLimit prefetch to maximum 100 messages\u003c/h1\u003e\n\u003cp\u003eqos = QoS(callback=consumer.qos, initial_value=10, max_prefetch=100)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eRedis Polling Interval Support \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2346\"\u003ecelery/kombu#2346\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eFix Redis transport to properly propagate \u003ccode\u003epolling_interval\u003c/code\u003e and \u003ccode\u003ebrpop_timeout\u003c/code\u003e from \u003ccode\u003etransport_options\u003c/code\u003e to the Channel's \u003ccode\u003e_brpop_start\u003c/code\u003e timeout.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.broker_transport_options = {\u0026quot;polling_interval\u0026quot;: 10}\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/celery/kombu/blob/main/Changelog.rst\"\u003ekombu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 29 December, 2025\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Improve error handling in GCP Pub/Sub ack deadline extension ([#2430](https://github.com/celery/kombu/issues/2430))\n- Fix SentinelChannel to pass ACL credentials to master_for() ([#2426](https://github.com/celery/kombu/issues/2426))\n- Fix credential_provider compatibility with redis-py \u0026lt; 5.3.0 ([#2423](https://github.com/celery/kombu/issues/2423))\n- Simplify requirements given Py3.9+ baseline ([#2414](https://github.com/celery/kombu/issues/2414))\n- Prepare for release: v5.6.2 ([#2434](https://github.com/celery/kombu/issues/2434))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 25 November, 2025\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure hub close does also remove global event loop reference (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2404\"\u003e#2404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: default value for SQS's receive message (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2405\"\u003e#2405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: add support for credential_provider to redis broker (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2408\"\u003e#2408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2416\"\u003e#2416\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 1 November, 2025\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nQoS Max Prefetch Limit\n----------------------\n\u003cp\u003e\u003ccode\u003ePR [#2348](https://github.com/celery/kombu/issues/2348) \u0026amp;lt;https://github.com/celery/kombu/pull/2348\u0026amp;gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003ePrevent Out Of Memory crashes when queues flood with ETA/countdown tasks. The new optional \u003ccode\u003emax_prefetch\u003c/code\u003e parameter caps how many messages workers hold in memory. Defaults to unlimited (\u003ccode\u003eNone\u003c/code\u003e) to preserve existing behavior.\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efrom kombu.common import QoS\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/279b81f3042f23524111d3afcc773e8bb5530672\"\u003e\u003ccode\u003e279b81f\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2434\"\u003e#2434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/a12f3a924a21a5ee1f3b5ee9f60dd93e11102c42\"\u003e\u003ccode\u003ea12f3a9\u003c/code\u003e\u003c/a\u003e Improve the error handling in ack deadline extension (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2430\"\u003e#2430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/4055fa764b419f2c620f44c7c63afc7248d189b0\"\u003e\u003ccode\u003e4055fa7\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2432\"\u003e#2432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/8756f49760ea68a8fe81fb5a6fbd524363c8bccb\"\u003e\u003ccode\u003e8756f49\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2429\"\u003e#2429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/0a5a0bc26fd5ef775d2d3c3087820f7baea474a2\"\u003e\u003ccode\u003e0a5a0bc\u003c/code\u003e\u003c/a\u003e Fix SentinelChannel to pass ACL credentials to master_for() (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2426\"\u003e#2426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/f204769417e3b46b74f75b9e66e23d1e3033573c\"\u003e\u003ccode\u003ef204769\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2424\"\u003e#2424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/9a7285908f0d4a4c548bdd011a8b2d54371b6077\"\u003e\u003ccode\u003e9a72859\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.18.2 to 1.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/260d51750e6f04bf716d240912dc4bdcae269ba5\"\u003e\u003ccode\u003e260d517\u003c/code\u003e\u003c/a\u003e fix: credential_provider compatibility issue with redis \u0026lt; 5.3.0 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2423\"\u003e#2423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/161a61b934fcfd9197f4d3e1458479e82cd717dc\"\u003e\u003ccode\u003e161a61b\u003c/code\u003e\u003c/a\u003e Simplify requirements given Py3.9+ baseline (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2414\"\u003e#2414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/5208431c95bda47c7f422638dd273e086ab34be9\"\u003e\u003ccode\u003e5208431\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2416\"\u003e#2416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/kombu/compare/v5.5.4...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oslo-config` from 10.0.0 to 10.2.0\n\nUpdates `oslo-i18n` from 6.6.0 to 6.7.1\n\nUpdates `pbr` from 7.0.1 to 7.0.3\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.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/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.43 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stevedore` from 5.5.0 to 5.6.0\n\nUpdates `wrapt` from 1.17.3 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/releases\"\u003ewrapt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ewrapt-2.1.0\u003c/h2\u003e\n\u003cp\u003eSee the project page on the Python Package Index at \u003ca href=\"https://pypi.org/project/wrapt/2.1.0/\"\u003ehttps://pypi.org/project/wrapt/2.1.0/\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003ewrapt-2.0.1\u003c/h2\u003e\n\u003cp\u003eSee the project page on the Python Package Index at \u003ca href=\"https://pypi.org/project/wrapt/2.0.1/\"\u003ehttps://pypi.org/project/wrapt/2.0.1/\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003ewrapt-2.0.0\u003c/h2\u003e\n\u003cp\u003eSee the project page on the Python Package Index at \u003ca href=\"https://pypi.org/project/wrapt/2.0.0/\"\u003ehttps://pypi.org/project/wrapt/2.0.0/\u003c/a\u003e for more information.\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/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst\"\u003ewrapt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.1.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures Changed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. Python version 3.9 or later is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hints so that \u003ccode\u003emypy\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e work better for methods of\nclasses when using \u003ccode\u003ewrapt.decorator\u003c/code\u003e and \u003ccode\u003ewrapt.function_wrapper\u003c/code\u003e. Note\nthat applying these to static methods still does not work correctly due to\npossibly limitations in those type checkers. The \u003ccode\u003epyrefly\u003c/code\u003e tool still does\nnot work correctly with \u003ccode\u003ewrapt.decorator\u003c/code\u003e and \u003ccode\u003ewrapt.function_wrapper\u003c/code\u003e\napplied to any methods of classes. Overall \u003ccode\u003epyright\u003c/code\u003e provides the best\nexperience when using \u003ccode\u003ewrapt\u003c/code\u003e with type checking.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e function wasn't included in the\n\u003ccode\u003e__all__\u003c/code\u003e attribute of the \u003ccode\u003ewrapt\u003c/code\u003e module, meaning that it wasn't\naccessible when using \u003ccode\u003efrom wrapt import *\u003c/code\u003e and type checkers such as\n\u003ccode\u003emypy\u003c/code\u003e or \u003ccode\u003epylance\u003c/code\u003e may not see it as part of the public API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen using \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e to lazily import a function of a module,\nthe resulting proxy object wasn't marked as callable until something triggered\nthe import of the module via the proxy. This meant a \u003ccode\u003ecallable()\u003c/code\u003e check\non the proxy would return \u003ccode\u003eFalse\u003c/code\u003e until the module was actually imported.\nFurther, calling the proxy before the module was imported would raise\n\u003ccode\u003eTypeError: 'LazyObjectProxy' object is not callable\u003c/code\u003e rather than\nimporting the module and calling the function as expected. In order to\naddress this issue, an additional keyword argument \u003ccode\u003einterface\u003c/code\u003e has been\nadded to \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e which can be used to specify the expected\ninterface type of the wrapped object. This will default to \u003ccode\u003eCallable\u003c/code\u003e\nwhen an attribute name is supplied, and to \u003ccode\u003eModuleType\u003c/code\u003e when no attribute\nname is supplied. If using \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e and supplying an\n\u003ccode\u003eattribute\u003c/code\u003e argument, and you expect the wrapped object to be something\nother than a callable, you should now also supply \u003ccode\u003einterface=...\u003c/code\u003e with the\nappropriate type from \u003ccode\u003ecollections.abc\u003c/code\u003e to ensure the proxy behaves correctly\nprior to the module being imported. This should only be necessary where the\nwrapped object has special dunder methods on its type which need to exist on\nthe proxy prior to the module being imported.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.0\u003c/h2\u003e\n\u003cp\u003eThere have been subtle changes in various corner cases of the behaviour of the\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0febe4a0e314b0594329d6258159b4327988ed33\"\u003e\u003ccode\u003e0febe4a\u003c/code\u003e\u003c/a\u003e Merge branch 'release/2.1.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/6a526b6438d4150075a657438f9c45c5f922b4ef\"\u003e\u003ccode\u003e6a526b6\u003c/code\u003e\u003c/a\u003e Drop rc tag ready for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/f136593e328f7e2507af3937e4a8aa9958d23398\"\u003e\u003ccode\u003ef136593\u003c/code\u003e\u003c/a\u003e Add additional note to changes file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/1ae09db2d949fb5fb0f3765b4fc2dc17375a61c6\"\u003e\u003ccode\u003e1ae09db\u003c/code\u003e\u003c/a\u003e Update version to 2.1.0rc1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/bf5381391c05e03eedd3e40f4c450744b970c59c\"\u003e\u003ccode\u003ebf53813\u003c/code\u003e\u003c/a\u003e Update for 2.1.0dev2 snapshot.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/56b5c3d895e0d61081b48c07a9f177ae13e47df4\"\u003e\u003ccode\u003e56b5c3d\u003c/code\u003e\u003c/a\u003e Skip mypy tests when using pypy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/bfd71dc8317d67406ca21134f68c470549056683\"\u003e\u003ccode\u003ebfd71dc\u003c/code\u003e\u003c/a\u003e Improve type hints so works better with mypy and ty.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/64b95ec538a7b9a162345398e70b57ccd2a5853a\"\u003e\u003ccode\u003e64b95ec\u003c/code\u003e\u003c/a\u003e Stop using deprecated settings format.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/ff1d03324e5db7f0c67d7969c2b2d01f8465f36e\"\u003e\u003ccode\u003eff1d033\u003c/code\u003e\u003c/a\u003e Fix formatting of tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/3c91a0cb30d8469bba36fe087370ea593a70f3ff\"\u003e\u003ccode\u003e3c91a0c\u003c/code\u003e\u003c/a\u003e Remove top level \u003cstrong\u003epycache\u003c/strong\u003e directory.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/compare/1.17.3...2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mendersoftware/mantra/pull/237","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendersoftware%2Fmantra/issues/237","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/237/packages"}],"issue_packages":[{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-05-25T15:50:54.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4518086667","node_id":"PR_kwDOHsAm8s7fGRFR","number":902,"state":"closed","title":"build(deps): bump the python-deps group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-27T12:17:19.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T15:50:54.000Z","updated_at":"2026-05-27T12:17:22.000Z","time_to_close":159985,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-deps","update_count":14,"packages":[{"name":"sqlalchemy","old_version":"2.0.49","new_version":"2.0.50","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"boto3","old_version":"1.42.85","new_version":"1.43.14","repository_url":"https://github.com/boto/boto3"},{"name":"awswrangler","old_version":"3.15.1","new_version":"3.16.1","repository_url":"https://github.com/aws/aws-sdk-pandas"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"google-cloud-kms","old_version":"3.12.0","new_version":"3.13.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"tox","old_version":"4.52.0","new_version":"4.54.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"myst-parser","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/executablebooks/MyST-Parser"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.49` | `2.0.50` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [boto3](https://github.com/boto/boto3) | `1.42.85` | `1.43.14` |\n| [awswrangler](https://github.com/aws/aws-sdk-pandas) | `3.15.1` | `3.16.1` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.2.0` |\n| [google-cloud-kms](https://github.com/googleapis/google-cloud-python) | `3.12.0` | `3.13.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.52.0` | `4.54.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.14` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [myst-parser](https://github.com/executablebooks/MyST-Parser) | `5.0.0` | `5.1.0` |\n\n\nUpdates `sqlalchemy` from 2.0.49 to 2.0.50\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.50\u003c/h1\u003e\n\u003cp\u003eReleased: May 24, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003ePropComparator.of_type()\u003c/code\u003e targeting a joined-table subclass combined\nwith \u003ccode\u003ePropComparator.and_()\u003c/code\u003e referencing a column on that subclass\nwould generate invalid SQL, where the subclass column was not adapted to\nthe subquery alias.  Pull request courtesy Joaquin Hui Gomez.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13203\"\u003e#13203\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where the presence of a \u003ccode\u003eSessionEvents.do_orm_execute()\u003c/code\u003e\nevent hook would cause internal execution options such as \u003ccode\u003eyield_per\u003c/code\u003e and\nloader-specific state from the first \u003ccode\u003eorm_pre_session_exec\u003c/code\u003e pass to leak\ninto the second pass, leading to errors when using relationship loaders\nsuch as \u003ccode\u003eselectinload()\u003c/code\u003e and \u003ccode\u003eimmediateload()\u003c/code\u003e.  The execution\noptions passed to the second compilation pass are now based on the original\noptions plus only the explicit updates made via\n\u003ccode\u003eORMExecuteState.update_execution_options()\u003c/code\u003e within the event hook.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13301\"\u003e#13301\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e on a leaf class (a\nsubclass with no further descendants) or a non-inherited class would fail\nwith an \u003ccode\u003eAttributeError\u003c/code\u003e when used in an ORM statement, due to\n\u003ccode\u003e_orm.configure_mappers()\u003c/code\u003e not being triggered implicitly. The fix\nensures that \u003ccode\u003eAliasedInsp\u003c/code\u003e participates in the \u003ccode\u003e_post_inspect\u003c/code\u003e\nhook, triggering mapper configuration during ORM statement compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13319\"\u003e#13319\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where floor division (\u003ccode\u003e//\u003c/code\u003e) between a \u003ccode\u003eFloat\u003c/code\u003e or\n\u003ccode\u003eNumeric\u003c/code\u003e numerator and an \u003ccode\u003eInteger\u003c/code\u003e denominator would omit\nthe \u003ccode\u003eFLOOR()\u003c/code\u003e SQL wrapper on dialects where\n\u003ccode\u003eDialect.div_is_floordiv\u003c/code\u003e is \u003ccode\u003eTrue\u003c/code\u003e (the default, including\nPostgreSQL and SQLite).  \u003ccode\u003eFLOOR()\u003c/code\u003e is now applied if either the\ndenominator or the numerator is a non-integer, so that expressions such as\n\u003ccode\u003efloat_col // int_col\u003c/code\u003e render as \u003ccode\u003eFLOOR(float_col / int_col)\u003c/code\u003e instead\nof the incorrect \u003ccode\u003efloat_col / int_col\u003c/code\u003e.  Pull request courtesy r266-tech.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/10528\"\u003e#10528\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\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.85 to 1.43.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/07953b03a1c6fc86660852ee65a21c3ceae3f437\"\u003e\u003ccode\u003e07953b0\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.14'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/25c77c306c3efba0d44bebec97ab882ddd6f0958\"\u003e\u003ccode\u003e25c77c3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5e64afcd4172f04cd4b62a40050bd6088e316316\"\u003e\u003ccode\u003e5e64afc\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/97921f4babf469d1c1fbbb27746bbaece6008122\"\u003e\u003ccode\u003e97921f4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.13'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/4e58a354db37897d65024fca50e9f9b4e4845068\"\u003e\u003ccode\u003e4e58a35\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.13' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1307ac2642ed8e53aca983b1c89e952309a0c66d\"\u003e\u003ccode\u003e1307ac2\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c75c901f5be45cce8e8f46733ee0562d06110c81\"\u003e\u003ccode\u003ec75c901\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/d3f2433ff49062a75426c406e606625b69a32eb6\"\u003e\u003ccode\u003ed3f2433\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d5eddf97fcacb8e8aecf0ff043501ff97454f105\"\u003e\u003ccode\u003ed5eddf9\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/93f3a42377b288934f08416a9c3b63920d8163c6\"\u003e\u003ccode\u003e93f3a42\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.12\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.85...1.43.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awswrangler` from 3.15.1 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-pandas/releases\"\u003eawswrangler's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eAWS SDK for pandas 3.16.1\u003c/h2\u003e\n\u003ch2\u003eNotable Changes ⚠️\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epyarrow upgraded from v20.0.0 to v.22.0.0 in AWS lambda layers ⚠️\u003c/li\u003e\n\u003cli\u003eAWS Lambda layer region expansion: added layers in ca-west-1  Canada West (Calgary) 🇨🇦\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(athena): verify bucket ownership and manifest integrity by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3314\"\u003eaws/aws-sdk-pandas#3314\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Dependency Updates 🛡️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump cryptography from 46.0.6 to 46.0.7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3297\"\u003eaws/aws-sdk-pandas#3297\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump uv from 0.10.10 to 0.11.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3299\"\u003eaws/aws-sdk-pandas#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump pytest from 8.4.2 to 9.0.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/aws/aws-sdk-pandas/pull/3303\"\u003eaws/aws-sdk-pandas#3303\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): upgrade lxml to 6.1.0 and redshift-connector to 2.1.13 (CVE-2026-41066) by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3309\"\u003eaws/aws-sdk-pandas#3309\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): bump ray, jupyterlab, nbconvert, pip due to CVEs by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3316\"\u003eaws/aws-sdk-pandas#3316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the github-actions group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3300\"\u003eaws/aws-sdk-pandas#3300\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Release 3.16.1 by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3318\"\u003eaws/aws-sdk-pandas#3318\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump jupyter-server from 2.17.0 to 2.18.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3321\"\u003eaws/aws-sdk-pandas#3321\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps-dev): bump the development-dependencies group across 1 directory with 11 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/aws/aws-sdk-pandas/pull/3323\"\u003eaws/aws-sdk-pandas#3323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): allow pyarrow 24 by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3325\"\u003eaws/aws-sdk-pandas#3325\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Update layers.rst by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3296\"\u003eaws/aws-sdk-pandas#3296\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/aws/aws-sdk-pandas/compare/3.16.0...3.16.1\"\u003ehttps://github.com/aws/aws-sdk-pandas/compare/3.16.0...3.16.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eAWS SDK for pandas 3.16.0\u003c/h2\u003e\n\u003ch2\u003eNotable Changes ⚠️\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Support Pandas 3.x by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3272\"\u003eaws/aws-sdk-pandas#3272\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures / Enhancements 🚀\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: Support S3 Tables by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3273\"\u003eaws/aws-sdk-pandas#3273\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Sanitize SQL construction in Redshift module by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3281\"\u003eaws/aws-sdk-pandas#3281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve Dependabot LICENSE.txt parse error by \u003ca href=\"https://github.com/jaidisido\"\u003e\u003ccode\u003e@​jaidisido\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3286\"\u003eaws/aws-sdk-pandas#3286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(iceberg): too many open partitions by sorting inserts by \u003ca href=\"https://github.com/knQzx\"\u003e\u003ccode\u003e@​knQzx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3294\"\u003eaws/aws-sdk-pandas#3294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Support Athena workgroups with managed query results (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/issues/3174\"\u003e#3174\u003c/a\u003e) by \u003ca href=\"https://github.com/Will282\"\u003e\u003ccode\u003e@​Will282\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3275\"\u003eaws/aws-sdk-pandas#3275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Bundle libxslt/libexslt shared libraries in Lambda layer by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3295\"\u003eaws/aws-sdk-pandas#3295\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Dependency Updates 🛡️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): bump aiohttp from 3.13.3 to 3.13.4 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/aws/aws-sdk-pandas/pull/3292\"\u003eaws/aws-sdk-pandas#3292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pyasn1 from 0.6.2 to 0.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3289\"\u003eaws/aws-sdk-pandas#3289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.5 to 2.33.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3288\"\u003eaws/aws-sdk-pandas#3288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pygments from 2.19.2 to 2.20.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3287\"\u003eaws/aws-sdk-pandas#3287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump cryptography from 46.0.5 to 46.0.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3290\"\u003eaws/aws-sdk-pandas#3290\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Release 3.16.0 by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3285\"\u003eaws/aws-sdk-pandas#3285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Update layers.rst by \u003ca href=\"https://github.com/kukushking\"\u003e\u003ccode\u003e@​kukushking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aws/aws-sdk-pandas/pull/3269\"\u003eaws/aws-sdk-pandas#3269\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/aws/aws-sdk-pandas/commit/5f26a71674977808db7e7fc2c2d3578db79c1a5a\"\u003e\u003ccode\u003e5f26a71\u003c/code\u003e\u003c/a\u003e chore: Update layers.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/56f12d8bba8abf4c2900ddc67abfc74c2d643c8a\"\u003e\u003ccode\u003e56f12d8\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): bundle libicu for AL2023 runtime compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/5578901e6e242dec955513ccedb4a734e33031db\"\u003e\u003ccode\u003e5578901\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): remove stale lxml 6.0.2 dist-info before upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/2a5d6a2593dd88a95f57ab8af01651e62bd2ca48\"\u003e\u003ccode\u003e2a5d6a2\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): install libatomic on AL2023 and broaden lib search\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/d8a98b18d7162d1287f3b2fe76f49ed08d4e78f4\"\u003e\u003ccode\u003ed8a98b1\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): bundle libatomic.so.1 for pyarrow 22+ runtime\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/1f45c87a8d542ec218d8b339e51164792236be4c\"\u003e\u003ccode\u003e1f45c87\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): install libatomic for pyarrow 22 linker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/3da7549d88987113c320ceb1e3d5ee361bece333\"\u003e\u003ccode\u003e3da7549\u003c/code\u003e\u003c/a\u003e chore(lambda-layer): bump pyarrow to 22.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/8c7b9edbc5e47f29cb667e24876586d10e2dfc45\"\u003e\u003ccode\u003e8c7b9ed\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): upgrade lxml past redshift-connector cap for CVE-2026-41066\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/fcf7b8c5a6b2f2934c42cdd0da6ac8a1bf3ebef1\"\u003e\u003ccode\u003efcf7b8c\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): pin pyarrow to local wheel version in pip install\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-sdk-pandas/commit/04733f229053c9fa027745354ab39623d76c224a\"\u003e\u003ccode\u003e04733f2\u003c/code\u003e\u003c/a\u003e fix(lambda-layer): point pip at pre-built pyarrow wheel via --find-links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aws/aws-sdk-pandas/compare/3.15.1...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymysql` from 1.1.2 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/releases\"\u003epymysql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1232\"\u003ePyMySQL/PyMySQL#1232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReorganize TLS options: implement PREFERRED/REQUIRED SSL mode behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1235\"\u003ePyMySQL/PyMySQL#1235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1236\"\u003ePyMySQL/PyMySQL#1236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e) by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1237\"\u003ePyMySQL/PyMySQL#1237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update outdated requirements and reference links by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1239\"\u003ePyMySQL/PyMySQL#1239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare CHANGELOG for v1.2.0 release from v1.1.3 changes by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1238\"\u003ePyMySQL/PyMySQL#1238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e again by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1240\"\u003ePyMySQL/PyMySQL#1240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1241\"\u003ePyMySQL/PyMySQL#1241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1243\"\u003ePyMySQL/PyMySQL#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v1.2.0 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1244\"\u003ePyMySQL/PyMySQL#1244\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/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecallproc: escape procname by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1225\"\u003ePyMySQL/PyMySQL#1225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse ubuntu-slim and dependabot by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1226\"\u003ePyMySQL/PyMySQL#1226\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1227\"\u003ePyMySQL/PyMySQL#1227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1228\"\u003ePyMySQL/PyMySQL#1228\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1229\"\u003ePyMySQL/PyMySQL#1229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 1.1.3 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1230\"\u003ePyMySQL/PyMySQL#1230\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1227\"\u003ePyMySQL/PyMySQL#1227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.2...v1.1.3\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.2...v1.1.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/PyMySQL/PyMySQL/blob/main/CHANGELOG.md\"\u003epymysql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eRelease date: 2026-05-19\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eConnection.ping()\u003c/code\u003e change the default to not reconnect and deprecate \u003ccode\u003ereconnect\u003c/code\u003e argument.\nCreate a new connection if you want to reconnect. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError classes in Cursor class are removed. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econnect()\u003c/code\u003e arguments \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e now emit DeprecationWarning.\nUse \u003ccode\u003edatabase\u003c/code\u003e and \u003ccode\u003epassword\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReorganize TLS connection behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePyMySQL uses TLS by default when server supports it.\nUse \u003ccode\u003essl_disabled=True\u003c/code\u003e to prohibit SSL. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003essl_verify_cert=True\u003c/code\u003e, \u003ccode\u003essl_verify_identity=True\u003c/code\u003e, an \u003ccode\u003essl.SSLContext\u003c/code\u003e is passed,\nor when any other SSL option is configured, the connection \u003cstrong\u003erequires\u003c/strong\u003e SSL and raises\n\u003ccode\u003eOperationalError\u003c/code\u003e (CR_SSL_CONNECTION_ERROR) if the server doesn't support it. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1234\"\u003e#1234\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1236\"\u003e#1236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1237\"\u003e#1237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.set_charset(charset)\u003c/code\u003e now emits \u003ccode\u003eDeprecationWarning\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1.3\u003c/h2\u003e\n\u003cp\u003eRelease date: 2026-05-01\u003c/p\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCursor.callproc()\u003c/code\u003e didn't escape procedure name. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1206\"\u003e#1206\u003c/a\u003e)\nThere was a possibility of SQL injection when calling a procedure with a string received from an untrusted source as the procedure name.\u003c/p\u003e\n\u003cp\u003eNOTICE: This change may cause backward compatibility issues. If you specified a procedure name like \u003ccode\u003e\u0026quot;dbname.funcname\u0026quot;\u003c/code\u003e, the previous version called \u003ccode\u003eCALL dbname.funcname\u003c/code\u003e, but from this version, it will call \u003ccode\u003eCALL `dbname.funcname` \u003c/code\u003e so you cannot specify procedure name with database name anymore.\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/PyMySQL/PyMySQL/commit/0f1c324a6b73e34810af3e584f6d32554604488a\"\u003e\u003ccode\u003e0f1c324\u003c/code\u003e\u003c/a\u003e use ubuntu-latest for pypi publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/53b16b22f0fefc64ccf4606f20c87bedcceb1cac\"\u003e\u003ccode\u003e53b16b2\u003c/code\u003e\u003c/a\u003e Release v1.2.0 (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/637fe7e6b2b1bc6effefc53d0faccfe3d5036ea5\"\u003e\u003ccode\u003e637fe7e\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/23ca04a357a042db4188adefd04031c205837927\"\u003e\u003ccode\u003e23ca04a\u003c/code\u003e\u003c/a\u003e add AGENTS.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/7349a44e2b264395bd2d78fe3c9b7fdb26a7e740\"\u003e\u003ccode\u003e7349a44\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/ad5c50c254925caf24dbc06832a69f5c5c5ec76b\"\u003e\u003ccode\u003ead5c50c\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c963edbf53ac52f9ea6c9717411127d0d7f7061a\"\u003e\u003ccode\u003ec963edb\u003c/code\u003e\u003c/a\u003e Deprecation and removals (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/af6b9b42abcea73d9bfdb0aaff75656171c9cec7\"\u003e\u003ccode\u003eaf6b9b4\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for v1.2.0 release from v1.1.3 changes (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1238\"\u003e#1238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c7bf73f1987c3b78debb39a7a074e806178ecc9b\"\u003e\u003ccode\u003ec7bf73f\u003c/code\u003e\u003c/a\u003e docs: update outdated requirements and reference links (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1239\"\u003e#1239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c532b8d9d515ac5769cd285a5a520afed1e035c1\"\u003e\u003ccode\u003ec532b8d\u003c/code\u003e\u003c/a\u003e Reject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, `±Infini...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.2...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-kms` from 3.12.0 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-kms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-kms: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.52.0 to 4.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.54.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(conftest): strip broken nspkg.pth files under py3.15 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3937\"\u003etox-dev/tox#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(packaging): declare tox.pytest deps via a testing extra by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3940\"\u003etox-dev/tox#3940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(schema): cover every replace form in the TOML schema by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3941\"\u003etox-dev/tox#3941\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.1...4.54.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.1...4.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.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(security): harden user-facing logs and untrusted inputs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3924\"\u003etox-dev/tox#3924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(type): correct argparse override signatures for ty 0.0.33 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3932\"\u003etox-dev/tox#3932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: allow deps arrays in TOML schema by \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\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/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.0...4.53.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.0...4.53.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(toml): allow bare range/labeled dicts in env_list by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3923\"\u003etox-dev/tox#3923\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.1...4.53.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.1...4.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.52.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003euse normalize_isa for architecture factor matching by \u003ca href=\"https://github.com/rahuldevikar\"\u003e\u003ccode\u003e@​rahuldevikar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3919\"\u003etox-dev/tox#3919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(pip): invalidate install cache on resolution env var changes by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3921\"\u003etox-dev/tox#3921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.0...4.52.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.0...4.52.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare the runtime dependencies of the \u003ccode\u003etox.pytest\u003c/code\u003e plugin (\u003ccode\u003epytest\u003c/code\u003e, \u003ccode\u003edevpi-process\u003c/code\u003e and \u003ccode\u003epytest-mock\u003c/code\u003e)\nunder a new \u003ccode\u003etesting\u003c/code\u003e extra, so plugin authors can pull them in via \u003ccode\u003etox[testing]\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3938\u003c/code\u003e, :issue:\u003ccode\u003e3940\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExtend the generated TOML schema to cover every \u003ccode\u003ereplace\u003c/code\u003e table form (\u003ccode\u003eenv\u003c/code\u003e, \u003ccode\u003eref\u003c/code\u003e, \u003ccode\u003eposargs\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e,\n\u003ccode\u003eif\u003c/code\u003e), including conditional replacements used inside \u003ccode\u003ecommands\u003c/code\u003e. A guard test asserts the schema stays in sync\nwith the loader implementation so future replace types cannot be added without a corresponding schema entry.\n(:issue:\u003ccode\u003e3939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.1 (2026-05-02)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eBug fixes - 4.53.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eHardening pass on user-facing logging and config parsing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMask secret-looking \u003ccode\u003e--key=value\u003c/code\u003e flag values in command logs (terminal warnings, \u003ccode\u003e.tox/\u0026lt;env\u0026gt;/log/*.log\u003c/code\u003e, and\n\u003ccode\u003eOutcome\u003c/code\u003e \u003ccode\u003e__repr__\u003c/code\u003e) using the same keyword regex previously applied to environment variable values.\u003c/li\u003e\n\u003cli\u003eResolve PEP 723 \u003ccode\u003escript\u003c/code\u003e paths and reject any that escape \u003ccode\u003etox_root\u003c/code\u003e; cap the script read at 5 MiB so a symlink\nto \u003ccode\u003e/dev/zero\u003c/code\u003e cannot exhaust memory.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eeval()\u003c/code\u003e of a constructed \u003ccode\u003eLiteral[...]\u003c/code\u003e string in the CLI parser with a direct\n\u003ccode\u003eLiteral[tuple(action.choices)]\u003c/code\u003e subscript.\u003c/li\u003e\n\u003cli\u003ePass \u003ccode\u003etimeout=30\u003c/code\u003e to \u003ccode\u003eurlopen\u003c/code\u003e when fetching a remote requirements file so a slow or unresponsive mirror cannot\nhang \u003ccode\u003etox\u003c/code\u003e indefinitely. (:issue:\u003ccode\u003e3924\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow the generated TOML schema to validate array values for \u003ccode\u003edeps\u003c/code\u003e. (:issue:\u003ccode\u003e3929\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrect type annotations for \u003ccode\u003eArgumentParser.parse_args\u003c/code\u003e and \u003ccode\u003eparse_known_args\u003c/code\u003e overrides following \u003ccode\u003etypeshed PR [#15613](https://github.com/tox-dev/tox/issues/15613) \u0026lt;https://github.com/python/typeshed/pull/15613\u0026gt;\u003c/code\u003e_, which widened the \u003ccode\u003eargs\u003c/code\u003e parameter from \u003ccode\u003eSequence[str]\u003c/code\u003e\nto \u003ccode\u003eIterable[str]\u003c/code\u003e. The narrower type in tox's overrides violated the Liskov substitution principle and caused\n\u003ccode\u003einvalid-method-override\u003c/code\u003e errors with \u003ccode\u003ety\u003c/code\u003e 0.0.33. Also correct the \u003ccode\u003eoption_spec\u003c/code\u003e annotation in\n\u003ccode\u003edocs/tox_conf.py\u003c/code\u003e to \u003ccode\u003eClassVar[dict[str, Callable[[str], Any]]]\u003c/code\u003e matching the docutils stubs type.\n(:issue:\u003ccode\u003e3932\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.53.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eTOML \u003ccode\u003eenv_list\u003c/code\u003e now accepts bare range dicts (\u003ccode\u003e{ prefix = \u0026quot;3.\u0026quot;, start = 12, stop = 14 }\u003c/code\u003e) and bare labeled dicts\n(\u003ccode\u003e{ ecosystem = [\u0026quot;oci\u0026quot;, \u0026quot;python\u0026quot;] }\u003c/code\u003e) as top-level items, removing the \u003ccode\u003e{ product = [...] }\u003c/code\u003e wrapper when there is\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/tox-dev/tox/commit/1f1fcc7a53665a827d8a304190696c6926ebb2eb\"\u003e\u003ccode\u003e1f1fcc7\u003c/code\u003e\u003c/a\u003e release 4.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b35c8eedaf94906ed0e7938c7526dced550e6fa0\"\u003e\u003ccode\u003eb35c8ee\u003c/code\u003e\u003c/a\u003e 🐛 fix(schema): cover every replace form in the TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3941\"\u003e#3941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6eb5c4f5eec439b3924d6adb3d9d16ea7fc88a20\"\u003e\u003ccode\u003e6eb5c4f\u003c/code\u003e\u003c/a\u003e ✨ feat(packaging): declare tox.pytest deps via a testing extra (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3940\"\u003e#3940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1ad47ddaab21c891f136a9627d1c6cdb6ea655d7\"\u003e\u003ccode\u003e1ad47dd\u003c/code\u003e\u003c/a\u003e 🧪 test(conftest): strip broken nspkg.pth files under py3.15 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3937\"\u003e#3937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dfba9661b10aa5148daf7267b80fec50f4faa9d2\"\u003e\u003ccode\u003edfba966\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3936\"\u003e#3936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/21069af5f5b93774f88c271d5deb1389cd2caf12\"\u003e\u003ccode\u003e21069af\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3933\"\u003e#3933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/2b177917e4c0208c3e380e43f8d32d507180d82e\"\u003e\u003ccode\u003e2b17791\u003c/code\u003e\u003c/a\u003e release 4.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/86234dd57fc6a6dbf801aa98a91642cb9daf1dc8\"\u003e\u003ccode\u003e86234dd\u003c/code\u003e\u003c/a\u003e fix: allow deps arrays in TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3931\"\u003e#3931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dd305fe8f347c49fcd3bd63d5e56c912e4c428f2\"\u003e\u003ccode\u003edd305fe\u003c/code\u003e\u003c/a\u003e 🐛 fix(type): correct argparse override signatures for ty 0.0.33 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/3aa3cd5d4226dfdb54de3de810cd9367390c6424\"\u003e\u003ccode\u003e3aa3cd5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.0...4.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.5 to 7.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.14.0 — 2026-05-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: now when running one of the reporting commands, if there are\nparallel data files that need combining, they will be implicitly combined\nbefore creating the report. There is no option to avoid the combination; let\nus know if you have a use case that requires it.  Thanks, \u003ccode\u003eTim Hatch \u0026lt;pull 2162_\u0026gt;\u003c/code\u003e\u003cem\u003e. Closes \u003ccode\u003eissue 1781\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the output from \u003ccode\u003ecombine\u003c/code\u003e was too verbose, listing each file\nconsidered. Now it shows a single line with the counts of files combined,\nfiles skipped, and files with errors. The \u003ccode\u003e-q\u003c/code\u003e flag suppresses this line.\nThe old detailed lines are available with the new \u003ccode\u003e--debug=combine\u003c/code\u003e option.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: running a Python file through a symlink now sets the sys.path correctly,\nmatching regular Python behavior. Fixes \u003ccode\u003eissue 2157\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eCollector.flush_data\u003c/code\u003e could fail with \u0026quot;RuntimeError: Set changed\nsize during iteration\u0026quot; when a tracer in another thread added a line to the\nper-file set that \u003ccode\u003eadd_lines\u003c/code\u003e (or \u003ccode\u003eadd_arcs\u003c/code\u003e) was iterating. The values\npassed to \u003ccode\u003eCoverageData\u003c/code\u003e are now snapshotted via \u003ccode\u003edict.copy()\u003c/code\u003e and\n\u003ccode\u003eset.copy()\u003c/code\u003e, which are atomic under the GIL. Thanks, \u003ccode\u003eAlex Vandiver \u0026lt;pull 2165_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the soft keyword \u003ccode\u003elazy\u003c/code\u003e is now bolded in HTML reports.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe are no longer testing eventlet support. Eventlet started issuing stern\ndeprecation warnings that break our tests. Our support code is still there.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1781: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1781\"\u003ecoveragepy/coveragepy#1781\u003c/a\u003e\n.. _issue 2157: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2157\"\u003ecoveragepy/coveragepy#2157\u003c/a\u003e\n.. _pull 2162: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2162\"\u003ecoveragepy/coveragepy#2162\u003c/a\u003e\n.. _pull 2165: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2165\"\u003ecoveragepy/coveragepy#2165\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/646351b60429f1b5760af6c1b97b28483244a955\"\u003e\u003ccode\u003e646351b\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/39cd015505c8b04369c5b06e34fc22449a697370\"\u003e\u003ccode\u003e39cd015\u003c/code\u003e\u003c/a\u003e docs: prep for 7.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/649e8aa34af7d80c386ae82e8a3a6c9a3acb0dab\"\u003e\u003ccode\u003e649e8aa\u003c/code\u003e\u003c/a\u003e docs: thanks Alex Vandiver for \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8cd392e3b5c4bc15d534aaec0c21714f9f518469\"\u003e\u003ccode\u003e8cd392e\u003c/code\u003e\u003c/a\u003e fix: snapshot data in Collector.flush_data to avoid threading race (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2165\"\u003e#2165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c48e0edc2ebe44621b0053176e90f77b0c79bec1\"\u003e\u003ccode\u003ec48e0ed\u003c/code\u003e\u003c/a\u003e fix: less output for combining\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c2a3a284078556c911e0d9b6c6af1b7082a363ea\"\u003e\u003ccode\u003ec2a3a28\u003c/code\u003e\u003c/a\u003e docs: explain the change from \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1cd47aa6ac1da4e150da44055295d4e4f3a014e8\"\u003e\u003ccode\u003e1cd47aa\u003c/code\u003e\u003c/a\u003e fix: implicit combine-during-report now removes the combined data files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2d99fd7696e0bccec8037479a4e45c1ecccb8058\"\u003e\u003ccode\u003e2d99fd7\u003c/code\u003e\u003c/a\u003e feat: automatically combine coverage in report, thanks Tim Hatch (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2162\"\u003e#2162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9fbdcdfee1c122fac43f1bf9a5e2d1f4d835f21c\"\u003e\u003ccode\u003e9fbdcdf\u003c/code\u003e\u003c/a\u003e fix: lazy soft keywords are bolded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/5de7d0267b9466d59995aaae1a7e707c8c6f66e7\"\u003e\u003ccode\u003e5de7d02\u003c/code\u003e\u003c/a\u003e build: oops, misplaced quote\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.5...7.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.9 to 0.15.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.14\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-task-implicit-multiple-outputs\u003c/code\u003e (\u003ccode\u003eAIR202\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25152\"\u003e#25152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Mark \u003ccode\u003ePTH101\u003c/code\u003e fix as unsafe when first argument is a class attribute annotated as \u003ccode\u003eint\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25086\"\u003e#25086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Implement \u003ccode\u003etoo-many-try-statements\u003c/code\u003e (\u003ccode\u003eW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23970\"\u003e#23970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eincorrect-decorator-order\u003c/code\u003e (\u003ccode\u003eRUF074\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23461\"\u003e#23461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003efallible-context-manager\u003c/code\u003e (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22844\"\u003e#22844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix lambda formatting in interpolated string expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25144\"\u003e#25144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat generic \u003ccode\u003efrozenset\u003c/code\u003e annotations as immutable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25251\"\u003e#25251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Avoid \u003ccode\u003estrict\u003c/code\u003e behavior when \u003ccode\u003efuture-annotations\u003c/code\u003e are enabled (\u003ccode\u003eTC001\u003c/code\u003e, \u003ccode\u003eTC002\u003c/code\u003e, \u003ccode\u003eTC003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25035\"\u003e#25035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid false positives in \u003ccode\u003eelse\u003c/code\u003e clause (\u003ccode\u003ePLR1733\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25177\"\u003e#25177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25272\"\u003e#25272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve f-string source verbatim in \u003ccode\u003eSIM101\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25061\"\u003e#25061\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate code example setting Neovim LSP log level (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25284\"\u003e#25284\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd full PEP 798 support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25104\"\u003e#25104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a parser recursion limit (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24810\"\u003e#24810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate various \u003ccode\u003eruff_python_stdlib\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25273\"\u003e#25273\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocaballeror\"\u003e\u003ccode\u003e@​ocaballeror\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/samuelcolvin\"\u003e\u003ccode\u003e@​samuelcolvin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/baltasarblanco\"\u003e\u003ccode\u003e@​baltasarblanco\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aconal-com\"\u003e\u003ccode\u003e@​aconal-com\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9ad2da3015e5faf73bdc5f1d09df3e47238e3edf\"\u003e\u003ccode\u003e9ad2da3\u003c/code\u003e\u003c/a\u003e Bump 0.15.14 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25295\"\u003e#25295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c714e84952510696c05ec21b0158a3548898f594\"\u003e\u003ccode\u003ec714e84\u003c/code\u003e\u003c/a\u003e [ty] Modernize setup of union types in mdtests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25291\"\u003e#25291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a8e35ebfe318e2467a0f276e5d1a3a9032a55ad\"\u003e\u003ccode\u003e8a8e35e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Skip \u003ccode\u003eC417\u003c/code\u003e for lambdas with positional-only parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aea5ed4d278017057c2e842c6c3a2e92ad71495f\"\u003e\u003ccode\u003eaea5ed4\u003c/code\u003e\u003c/a\u003e Avoid unnecessary parser lookahead for operators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25290\"\u003e#25290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9d72bb420f26c23e6660bfce4dfa0028b931bff\"\u003e\u003ccode\u003ee9d72bb\u003c/code\u003e\u003c/a\u003e [ty] Allow enum member accesses on \u003ccode\u003eself\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25077\"\u003e#25077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6cbd59b511a92d5f408db57bde33367c0d47b672\"\u003e\u003ccode\u003e6cbd59b\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003eexclude-newer = \u0026quot;7 days\u0026quot;\u003c/code\u003e in our PEP-723 scripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25285\"\u003e#25285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9999a3967ae28fe3295131e8883b6947f272a076\"\u003e\u003ccode\u003e9999a39\u003c/code\u003e\u003c/a\u003e Update code example on ...\n\n_Description has been truncated_","html_url":"https://github.com/repository-service-tuf/repository-service-tuf-worker/pull/902","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/repository-service-tuf%2Frepository-service-tuf-worker/issues/902","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/902/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-05-22T10:32:57.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4501917941","node_id":"PR_kwDOHGh5u87eTq-E","number":953,"state":"closed","title":"build(deps): bump the pipenv group across 1 directory with 18 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T15:54:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-22T10:32:57.000Z","updated_at":"2026-05-25T15:54:28.000Z","time_to_close":278489,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"pipenv","update_count":18,"packages":[{"name":"click","old_version":"8.3.2","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"rich","old_version":"14.3.3","new_version":"14.3.4","repository_url":"https://github.com/Textualize/rich"},{"name":"requests","old_version":"2.33.1","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"beaupy","old_version":"3.11.0","new_version":"3.12.0","repository_url":"https://github.com/petereon/beaupy"},{"name":"boto3","old_version":"1.42.83","new_version":"1.43.13","repository_url":"https://github.com/boto/boto3"},{"name":"google-cloud-kms","old_version":"3.12.0","new_version":"3.13.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"azure-keyvault-keys","old_version":"4.11.0","new_version":"4.11.1","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"black","old_version":"26.3.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"tox","old_version":"4.52.0","new_version":"4.54.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.13.5","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"pip","old_version":"26.0.1","new_version":"26.1.1","repository_url":"https://github.com/pypa/pip"},{"name":"hatchling","old_version":"1.27.0","new_version":"1.29.0","repository_url":"https://github.com/pypa/hatch"},{"name":"build","old_version":"1.4.2","new_version":"1.5.0","repository_url":"https://github.com/pypa/build"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"types-requests","old_version":"2.33.0.20260402","new_version":"2.33.0.20260518","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pipenv group with 18 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.4.1` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `14.3.4` |\n| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [beaupy](https://github.com/petereon/beaupy) | `3.11.0` | `3.12.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.83` | `1.43.13` |\n| [google-cloud-kms](https://github.com/googleapis/google-cloud-python) | `3.12.0` | `3.13.0` |\n| [azure-keyvault-keys](https://github.com/Azure/azure-sdk-for-python) | `4.11.0` | `4.11.1` |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.1` |\n| [tox](https://github.com/tox-dev/tox) | `4.52.0` | `4.54.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.5` | `7.14.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [pip](https://github.com/pypa/pip) | `26.0.1` | `26.1.1` |\n| [hatchling](https://github.com/pypa/hatch) | `1.27.0` | `1.29.0` |\n| [build](https://github.com/pypa/build) | `1.4.2` | `1.5.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [types-requests](https://github.com/python/typeshed) | `2.33.0.20260402` | `2.33.0.20260518` |\n\n\nUpdates `click` from 8.3.2 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\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.4.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.4.0/\"\u003ehttps://pypi.org/project/click/8.4.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-4-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-4-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParamType\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3371\"\u003e#3371\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3372\"\u003e#3372\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eParameter\u003c/code\u003e typing improvements. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2805\"\u003e#2805\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\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\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\u003ch2\u003eVersion 8.4.0\u003c/h2\u003e\n\u003cp\u003eReleased 2026-05-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e3371\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParamType\u003c/code\u003e is now a generic abstract base class,\nparameterized by its converted value type.\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.convert\u003c/code\u003e return types are narrowed on all\nconcrete types (\u003ccode\u003estr\u003c/code\u003e for :class:\u003ccode\u003eSTRING\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e for\n:class:\u003ccode\u003eINT\u003c/code\u003e, etc.).\u003c/li\u003e\n\u003cli\u003e:meth:\u003ccode\u003e~ParamType.to_info_dict\u003c/code\u003e returns specific\n:class:\u003ccode\u003e~typing.TypedDict\u003c/code\u003e subclasses instead of\n\u003ccode\u003edict[str, Any]\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e:class:\u003ccode\u003eCompositeParamType\u003c/code\u003e and the number-range base are now\ngeneric with abstract methods.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003econvert_type\u003c/code\u003e to extract type inference into a private\n\u003ccode\u003e_guess_type\u003c/code\u003e helper, and add :func:\u003ccode\u003etyping.overload\u003c/code\u003e signatures.\n:pr:\u003ccode\u003e3372\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e typing improvements. :pr:\u003ccode\u003e2805\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:class:\u003ccode\u003eParameter\u003c/code\u003e is now an abstract base class, making explicit\nthat it cannot be instantiated directly.\u003c/li\u003e\n\u003cli\u003e:attr:\u003ccode\u003eParameter.name\u003c/code\u003e is now \u003ccode\u003estr\u003c/code\u003e instead of \u003ccode\u003estr | None\u003c/code\u003e.\nWhen \u003ccode\u003eexpose_value=False\u003c/code\u003e, the name is set to \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e instead\nof \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ectx\u003c/code\u003e parameter of :meth:\u003ccode\u003eParameter.get_error_hint\u003c/code\u003e is now\ntyped as \u003ccode\u003eContext | None\u003c/code\u003e, matching the runtime behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSplit string values from \u003ccode\u003edefault_map\u003c/code\u003e for parameters with \u003ccode\u003enargs \u0026gt; 1\u003c/code\u003e\nor :class:\u003ccode\u003eTuple\u003c/code\u003e type, matching environment variable behavior.\n:issue:\u003ccode\u003e2745\u003c/code\u003e :pr:\u003ccode\u003e3364\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAuto-detect \u003ccode\u003etype=UNPROCESSED\u003c/code\u003e for \u003ccode\u003eflag_value\u003c/code\u003e of non-basic types\n(not \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, or \u003ccode\u003ebool\u003c/code\u003e), so programmer-provided\nPython objects like classes and enum members are passed through unchanged\ninstead of being stringified. Previously \u003ccode\u003etype=click.UNPROCESSED\u003c/code\u003e had\nto be set explicitly. :issue:\u003ccode\u003e2012\u003c/code\u003e :pr:\u003ccode\u003e3363\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/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.3.2...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.3.3 to 14.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/ee8378c3bbbd7c75abc2f55c6c19e83b218ae81d\"\u003e\u003ccode\u003eee8378c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4073\"\u003e#4073\u003c/a\u003e from Textualize/bump1434\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f441a326f10af5dc0cd570dadaed16e7f7035fc3\"\u003e\u003ccode\u003ef441a32\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/b3167144fea59b02e257c1361f5e0c5832065ccd\"\u003e\u003ccode\u003eb316714\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/a86dce09714f4e5195cce8c15fce7a586d7b562a\"\u003e\u003ccode\u003ea86dce0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3845\"\u003e#3845\u003c/a\u003e from akx/faster-ids\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7f40063da781f4990d21423f23f7ccb3165ce0bd\"\u003e\u003ccode\u003e7f40063\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4070\"\u003e#4070\u003c/a\u003e from KRRT7/upstream/lazy-traceback-logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/6729c6f6c4ee24a13a94d825cb7ce66b52206db2\"\u003e\u003ccode\u003e6729c6f\u003c/code\u003e\u003c/a\u003e typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/64f2f1cf89a698f17f5b2c801b014dc8aced1177\"\u003e\u003ccode\u003e64f2f1c\u003c/code\u003e\u003c/a\u003e import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/de4a8bd5746a3cbda6d8ead9f75cbf49f868a639\"\u003e\u003ccode\u003ede4a8bd\u003c/code\u003e\u003c/a\u003e lazy is_expandable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/e5b7b3199fecb1f7d1fbc3d3d0df800fa6234830\"\u003e\u003ccode\u003ee5b7b31\u003c/code\u003e\u003c/a\u003e no need to rename locals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/5d6e2d72e4012eb594e131a8319dbd4165d97eda\"\u003e\u003ccode\u003e5d6e2d7\u003c/code\u003e\u003c/a\u003e fix docstring\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v14.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.1 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.1...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beaupy` from 3.11.0 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/petereon/beaupy/releases\"\u003ebeaupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: update python versions and fix test CI action by \u003ca href=\"https://github.com/petereon\"\u003e\u003ccode\u003e@​petereon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/156\"\u003epetereon/beaupy#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency python to 3.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/154\"\u003epetereon/beaupy#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v25.12.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/153\"\u003epetereon/beaupy#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mock to v5.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/151\"\u003epetereon/beaupy#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/142\"\u003epetereon/beaupy#142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(deps): update dependency emoji to v2.14.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/140\"\u003epetereon/beaupy#140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update jamesives/github-pages-deploy-action action to v4.7.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/146\"\u003epetereon/beaupy#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/161\"\u003epetereon/beaupy#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update jamesives/github-pages-deploy-action action to v4.8.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/160\"\u003epetereon/beaupy#160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/159\"\u003epetereon/beaupy#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency questo to v0.4.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/158\"\u003epetereon/beaupy#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update github/codeql-action action to v4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/165\"\u003epetereon/beaupy#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/163\"\u003epetereon/beaupy#163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest-cov to v7 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/164\"\u003epetereon/beaupy#164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update pypa/gh-action-pypi-publish digest to 03f86fe by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/134\"\u003epetereon/beaupy#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v26 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/167\"\u003epetereon/beaupy#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update stefanzweifel/git-auto-commit-action action to v7 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/166\"\u003epetereon/beaupy#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update pypa/gh-action-pypi-publish digest to e2bab26 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/168\"\u003epetereon/beaupy#168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency flake8-simplify to v0.30.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/150\"\u003epetereon/beaupy#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency toml-sort to v0.24.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/149\"\u003epetereon/beaupy#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update pypa/gh-action-pypi-publish digest to cef2210 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/169\"\u003epetereon/beaupy#169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v26.3.1 [security] by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/172\"\u003epetereon/beaupy#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest-cov to v7.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/173\"\u003epetereon/beaupy#173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency toml-sort to v0.24.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/174\"\u003epetereon/beaupy#174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v6 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/175\"\u003epetereon/beaupy#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.20.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/176\"\u003epetereon/beaupy#176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 [security] by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/179\"\u003epetereon/beaupy#179\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.20.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/178\"\u003epetereon/beaupy#178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency black to v26.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/183\"\u003epetereon/beaupy#183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: auto-pagination for longer lists than console size by \u003ca href=\"https://github.com/petereon\"\u003e\u003ccode\u003e@​petereon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/petereon/beaupy/pull/186\"\u003epetereon/beaupy#186\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/petereon/beaupy/compare/v3.11.0...v3.12.0\"\u003ehttps://github.com/petereon/beaupy/compare/v3.11.0...v3.12.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/petereon/beaupy/commit/d9d8577621abeae86bd8b1850e827ea9fca1fd0c\"\u003e\u003ccode\u003ed9d8577\u003c/code\u003e\u003c/a\u003e chore: bump version from 3.11.0 to 3.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/47744409ee262465a2f3bed51f2d77aa499bb917\"\u003e\u003ccode\u003e4774440\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/186\"\u003e#186\u003c/a\u003e from petereon/auto-pagination\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/921dd5d1505662037778a125eb84d4ad2ce59b0f\"\u003e\u003ccode\u003e921dd5d\u003c/code\u003e\u003c/a\u003e feat: auto-pagination for longer lists than console size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/4797730dc88f8cf3d4c2ac0a9ca054506824fc29\"\u003e\u003ccode\u003e4797730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/183\"\u003e#183\u003c/a\u003e from petereon/renovate/black-26.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/516d53cc3b8cfa47f1ee12ce5471b6128c7315ad\"\u003e\u003ccode\u003e516d53c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/2b3e71d98e0ba14cba384abd427b590b55da1ed7\"\u003e\u003ccode\u003e2b3e71d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/178\"\u003e#178\u003c/a\u003e from petereon/renovate/mypy-1.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/7b9253fa26400b348a88a1eac7e23ff0076412c3\"\u003e\u003ccode\u003e7b9253f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/petereon/beaupy/issues/179\"\u003e#179\u003c/a\u003e from petereon/renovate/pypi-pytest-vulnerability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/a4328a124d1db144fe729c1bd03d1431653b1141\"\u003e\u003ccode\u003ea4328a1\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.3 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/a5afb6074875b15728be3a9141318984cfa2178e\"\u003e\u003ccode\u003ea5afb60\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mypy to v1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/petereon/beaupy/commit/cf1d47ec126cbe3f271fb624adcf9a7b1e3425c2\"\u003e\u003ccode\u003ecf1d47e\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency mypy to v1.20.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/petereon/beaupy/compare/v3.11.0...v3.12.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.83 to 1.43.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/97921f4babf469d1c1fbbb27746bbaece6008122\"\u003e\u003ccode\u003e97921f4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.13'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1307ac2642ed8e53aca983b1c89e952309a0c66d\"\u003e\u003ccode\u003e1307ac2\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c75c901f5be45cce8e8f46733ee0562d06110c81\"\u003e\u003ccode\u003ec75c901\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/d3f2433ff49062a75426c406e606625b69a32eb6\"\u003e\u003ccode\u003ed3f2433\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d5eddf97fcacb8e8aecf0ff043501ff97454f105\"\u003e\u003ccode\u003ed5eddf9\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.12' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/93f3a42377b288934f08416a9c3b63920d8163c6\"\u003e\u003ccode\u003e93f3a42\u003c/code\u003e\u003c/a\u003e Bumping version to 1.43.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5355abdca2dfffff34b4e7b05135911845a87631\"\u003e\u003ccode\u003e5355abd\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/9ef5febabaaa8cb403fb3a5e97b0b6d333a0851a\"\u003e\u003ccode\u003e9ef5feb\u003c/code\u003e\u003c/a\u003e Bump idna from 3.7 to 3.15 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4788\"\u003e#4788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c628e75265dc9d48b40a216c72575e46348bbd21\"\u003e\u003ccode\u003ec628e75\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.11'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/210f10744645854d03856c59e73b4db84144dacb\"\u003e\u003ccode\u003e210f107\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.43.11' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.83...1.43.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-kms` from 3.12.0 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-kms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-kms: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-05-06)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-kms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/google-cloud-kms-v3.12.0...google-cloud-kms-v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-keyvault-keys` from 4.11.0 to 4.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-keyvault-keys's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-keyvault-keys_4.11.1\u003c/h2\u003e\n\u003ch2\u003e4.11.1 (2026-05-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures Added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for service API version \u003ccode\u003e2025-07-01\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/46716\"\u003e#46716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKey Vault API version \u003ccode\u003e2025-07-01\u003c/code\u003e is now the default\u003c/li\u003e\n\u003cli\u003eUpdated minimum \u003ccode\u003ecryptography\u003c/code\u003e version to 44.0.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/18e7c83822d6c4ab36100a52024d7791f5ce99d6\"\u003e\u003ccode\u003e18e7c83\u003c/code\u003e\u003c/a\u003e Update release plan and SDK release skills with improved wording and optional...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a634fee12332dd64d5d04054db242e82d5de8028\"\u003e\u003ccode\u003ea634fee\u003c/code\u003e\u003c/a\u003e [Key Vault] Regenerated SecurityDomain SDK with new folder structure and API ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b66e92220423b76fba42bf586034fe08df3b3cfa\"\u003e\u003ccode\u003eb66e922\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-purview with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46980\"\u003e#46980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/209643762d07f7c9c006a7776238b2b03eed34ec\"\u003e\u003ccode\u003e2096437\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-powerbidedicated with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46976\"\u003e#46976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5ba092498b1af30efad1ebabf2b87b587b89692f\"\u003e\u003ccode\u003e5ba0924\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-recoveryservices with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46984\"\u003e#46984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e86ae3a548cc9076570575f2a1aafbb1d82b010b\"\u003e\u003ccode\u003ee86ae3a\u003c/code\u003e\u003c/a\u003e [breaking-changes-tool][Feature] Detect changed return type for functions/met...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ea6c873aef4d08b6ebc4399f38be065d7228a19\"\u003e\u003ccode\u003e2ea6c87\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-operationsmanagement with latest code generator tool (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/3d4f111b3057824b1158156a690ff67cadd9c777\"\u003e\u003ccode\u003e3d4f111\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-peering with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46974\"\u003e#46974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/02335c5c795cb9f5911eaf3ba54998568847592a\"\u003e\u003ccode\u003e02335c5\u003c/code\u003e\u003c/a\u003e Regenerate azure-mgmt-policyinsights with latest code generator tool (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46975\"\u003e#46975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/74fb2fe3cdcb2a4d4b6f281359526214e9f1ee3d\"\u003e\u003ccode\u003e74fb2fe\u003c/code\u003e\u003c/a\u003e Enable A365 tracing and fix W3C baggage propagation in agentserver (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46754\"\u003e#46754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-keyvault-keys_4.11.0...azure-keyvault-keys_4.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 26.3.1 to 26.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.5.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix unstable formatting of annotated assignments whose subscript annotation contains\nan inline comment (e.g. \u003ccode\u003ex: list[  # pyright: ignore[...]\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve inline comments (including \u003ccode\u003e# type: ignore\u003c/code\u003e) immediately before a\n\u003ccode\u003e# fmt: skip\u003c/code\u003e line, avoiding AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect the version in the published executables (\u003ca href=\"https://redirect.github.com/psf/black/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Neovim integration guide covering conform.nvim, ALE, and simple command approaches\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/87928e6d6761a4a6d22250e1fee5601b3998086e\"\u003e\u003ccode\u003e87928e6\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5140\"\u003e#5140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c970a49702488739add6c728122deb3a99900803\"\u003e\u003ccode\u003ec970a49\u003c/code\u003e\u003c/a\u003e Preserve comments before fmt: skip lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5809338fd5f92d50e80c2ad312292ae6d428a480\"\u003e\u003ccode\u003e5809338\u003c/code\u003e\u003c/a\u003e Preserve inline comments inside annotation subscripts (\u003ca href=\"https://redirect.github.com/psf/black/issues/5130\"\u003e#5130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/61361b71995f6ea44ce01915bacd3ecc50642507\"\u003e\u003ccode\u003e61361b7\u003c/code\u003e\u003c/a\u003e docs: add Neovim integration guide and fix http link (\u003ca href=\"https://redirect.github.com/psf/black/issues/5124\"\u003e#5124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ebe6018e3254629788376e619207719fbe34a849\"\u003e\u003ccode\u003eebe6018\u003c/code\u003e\u003c/a\u003e CI Hotfixes (\u003ca href=\"https://redirect.github.com/psf/black/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9cbd95f80e97c1ab4d690d1d41b81579a13bf75c\"\u003e\u003ccode\u003e9cbd95f\u003c/code\u003e\u003c/a\u003e Fix publish binaries again on Windows (\u003ca href=\"https://redirect.github.com/psf/black/issues/5134\"\u003e#5134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/3dc8e6c41911bdaedb4bac8d633979c34a112b78\"\u003e\u003ccode\u003e3dc8e6c\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/6d0fff0d5a965b9d0d3dbd7c5738d835fd574130\"\u003e\u003ccode\u003e6d0fff0\u003c/code\u003e\u003c/a\u003e Fix publish binaries workflow (\u003ca href=\"https://redirect.github.com/psf/black/issues/5133\"\u003e#5133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.52.0 to 4.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.54.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🧪 test(conftest): strip broken nspkg.pth files under py3.15 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3937\"\u003etox-dev/tox#3937\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(packaging): declare tox.pytest deps via a testing extra by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3940\"\u003etox-dev/tox#3940\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(schema): cover every replace form in the TOML schema by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3941\"\u003etox-dev/tox#3941\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.1...4.54.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.1...4.54.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.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(security): harden user-facing logs and untrusted inputs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3924\"\u003etox-dev/tox#3924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(type): correct argparse override signatures for ty 0.0.33 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3932\"\u003etox-dev/tox#3932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: allow deps arrays in TOML schema by \u003ca href=\"https://github.com/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\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/cyphercodes\"\u003e\u003ccode\u003e@​cyphercodes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3931\"\u003etox-dev/tox#3931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.53.0...4.53.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.53.0...4.53.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.53.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(toml): allow bare range/labeled dicts in env_list by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3923\"\u003etox-dev/tox#3923\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.1...4.53.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.1...4.53.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.52.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003euse normalize_isa for architecture factor matching by \u003ca href=\"https://github.com/rahuldevikar\"\u003e\u003ccode\u003e@​rahuldevikar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3919\"\u003etox-dev/tox#3919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(pip): invalidate install cache on resolution env var changes by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3921\"\u003etox-dev/tox#3921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.52.0...4.52.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.52.0...4.52.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDeclare the runtime dependencies of the \u003ccode\u003etox.pytest\u003c/code\u003e plugin (\u003ccode\u003epytest\u003c/code\u003e, \u003ccode\u003edevpi-process\u003c/code\u003e and \u003ccode\u003epytest-mock\u003c/code\u003e)\nunder a new \u003ccode\u003etesting\u003c/code\u003e extra, so plugin authors can pull them in via \u003ccode\u003etox[testing]\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e.\n(:issue:\u003ccode\u003e3938\u003c/code\u003e, :issue:\u003ccode\u003e3940\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.54.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExtend the generated TOML schema to cover every \u003ccode\u003ereplace\u003c/code\u003e table form (\u003ccode\u003eenv\u003c/code\u003e, \u003ccode\u003eref\u003c/code\u003e, \u003ccode\u003eposargs\u003c/code\u003e, \u003ccode\u003eglob\u003c/code\u003e,\n\u003ccode\u003eif\u003c/code\u003e), including conditional replacements used inside \u003ccode\u003ecommands\u003c/code\u003e. A guard test asserts the schema stays in sync\nwith the loader implementation so future replace types cannot be added without a corresponding schema entry.\n(:issue:\u003ccode\u003e3939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.1 (2026-05-02)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eBug fixes - 4.53.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eHardening pass on user-facing logging and config parsing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMask secret-looking \u003ccode\u003e--key=value\u003c/code\u003e flag values in command logs (terminal warnings, \u003ccode\u003e.tox/\u0026lt;env\u0026gt;/log/*.log\u003c/code\u003e, and\n\u003ccode\u003eOutcome\u003c/code\u003e \u003ccode\u003e__repr__\u003c/code\u003e) using the same keyword regex previously applied to environment variable values.\u003c/li\u003e\n\u003cli\u003eResolve PEP 723 \u003ccode\u003escript\u003c/code\u003e paths and reject any that escape \u003ccode\u003etox_root\u003c/code\u003e; cap the script read at 5 MiB so a symlink\nto \u003ccode\u003e/dev/zero\u003c/code\u003e cannot exhaust memory.\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eeval()\u003c/code\u003e of a constructed \u003ccode\u003eLiteral[...]\u003c/code\u003e string in the CLI parser with a direct\n\u003ccode\u003eLiteral[tuple(action.choices)]\u003c/code\u003e subscript.\u003c/li\u003e\n\u003cli\u003ePass \u003ccode\u003etimeout=30\u003c/code\u003e to \u003ccode\u003eurlopen\u003c/code\u003e when fetching a remote requirements file so a slow or unresponsive mirror cannot\nhang \u003ccode\u003etox\u003c/code\u003e indefinitely. (:issue:\u003ccode\u003e3924\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow the generated TOML schema to validate array values for \u003ccode\u003edeps\u003c/code\u003e. (:issue:\u003ccode\u003e3929\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrect type annotations for \u003ccode\u003eArgumentParser.parse_args\u003c/code\u003e and \u003ccode\u003eparse_known_args\u003c/code\u003e overrides following \u003ccode\u003etypeshed PR [#15613](https://github.com/tox-dev/tox/issues/15613) \u0026lt;https://github.com/python/typeshed/pull/15613\u0026gt;\u003c/code\u003e_, which widened the \u003ccode\u003eargs\u003c/code\u003e parameter from \u003ccode\u003eSequence[str]\u003c/code\u003e\nto \u003ccode\u003eIterable[str]\u003c/code\u003e. The narrower type in tox's overrides violated the Liskov substitution principle and caused\n\u003ccode\u003einvalid-method-override\u003c/code\u003e errors with \u003ccode\u003ety\u003c/code\u003e 0.0.33. Also correct the \u003ccode\u003eoption_spec\u003c/code\u003e annotation in\n\u003ccode\u003edocs/tox_conf.py\u003c/code\u003e to \u003ccode\u003eClassVar[dict[str, Callable[[str], Any]]]\u003c/code\u003e matching the docutils stubs type.\n(:issue:\u003ccode\u003e3932\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.53.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.53.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eTOML \u003ccode\u003eenv_list\u003c/code\u003e now accepts bare range dicts (\u003ccode\u003e{ prefix = \u0026quot;3.\u0026quot;, start = 12, stop = 14 }\u003c/code\u003e) and bare labeled dicts\n(\u003ccode\u003e{ ecosystem = [\u0026quot;oci\u0026quot;, \u0026quot;python\u0026quot;] }\u003c/code\u003e) as top-level items, removing the \u003ccode\u003e{ product = [...] }\u003c/code\u003e wrapper when there is\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/tox-dev/tox/commit/1f1fcc7a53665a827d8a304190696c6926ebb2eb\"\u003e\u003ccode\u003e1f1fcc7\u003c/code\u003e\u003c/a\u003e release 4.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b35c8eedaf94906ed0e7938c7526dced550e6fa0\"\u003e\u003ccode\u003eb35c8ee\u003c/code\u003e\u003c/a\u003e 🐛 fix(schema): cover every replace form in the TOML schema (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3941\"\u003e#3941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/6eb5c4f5eec439b3924d6adb3d9d16ea7fc88a20\"\u003e\u003ccode\u003e6eb5c4f\u003c/code\u003e\u003c/a\u003e ✨ feat(packaging): declare tox.pytest deps via a testing extra (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3940\"\u003e#3940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/1ad47ddaab21c891f136a9627d1c6cdb6ea655d7\"\u003e\u003ccode\u003e1ad47dd\u003c/code\u003e\u003c/a\u003e 🧪 test(conftest): strip broken nspkg.pth files under py3.15 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3937\"\u003e#3937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/dfba9661b10aa5148daf7267b80fec50f4faa9d2\"\u003e\u003ccode\u003edfba966\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3936\"\u003e#3936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/21069af5f5b93774f88c271d5deb1389cd2caf12\"\u003e\u003ccode\u003e21069af\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3933\"\u003e#3933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/2b177917e4c0208c3e380e43f8d32d507180d82e\"\u003e\u003ccode\u003e2b17791\u003c/code\u003e\u003c/a\u003e release 4.53.1\u003c/li\u003e\n\u003cli...\n\n_Description has been truncated_","html_url":"https://github.com/repository-service-tuf/repository-service-tuf-cli/pull/953","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/repository-service-tuf%2Frepository-service-tuf-cli/issues/953","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/953/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-05-16T14:41:00.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4460212333","node_id":"PR_kwDOSfSDO87cOS0x","number":2,"state":"closed","title":"chore(deps): bump psycopg2 from 2.9.11 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-17T05:34:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T14:41:00.000Z","updated_at":"2026-05-17T05:35:01.000Z","time_to_close":53639,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.11 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.11\u0026new-version=2.9.12)](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/webdox-computer-institute-jalandhar/webdox-django-deploy-digitalocean/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdox-computer-institute-jalandhar%2Fwebdox-django-deploy-digitalocean/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-05-07T22:38:56.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4402443377","node_id":"PR_kwDOFr-Nvs7ZVGmC","number":221,"state":"open","title":"chore(deps): bump the python-minor-patch group across 6 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-07T22:38:56.000Z","updated_at":"2026-05-07T22:40:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":7,"packages":[{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 2 updates in the /anonymizer_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver) and [psycopg2](https://github.com/psycopg/psycopg2).\nBumps the python-minor-patch group with 3 updates in the /collector_module directory: [requests](https://github.com/psf/requests), [pymongo](https://github.com/mongodb/mongo-python-driver) and [urllib3](https://github.com/urllib3/urllib3).\nBumps the python-minor-patch group with 1 update in the /corrector_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 3 updates in the /opendata_collector_module directory: [requests](https://github.com/psf/requests), [pymongo](https://github.com/mongodb/mongo-python-driver) and [urllib3](https://github.com/urllib3/urllib3).\nBumps the python-minor-patch group with 3 updates in the /opendata_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [psycopg2](https://github.com/psycopg/psycopg2) and [django](https://github.com/django/django).\nBumps the python-minor-patch group with 3 updates in the /reports_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [matplotlib](https://github.com/matplotlib/matplotlib) and [pillow](https://github.com/python-pillow/Pillow).\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/...\n\n_Description has been truncated_","html_url":"https://github.com/nordic-institute/X-Road-Metrics/pull/221","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordic-institute%2FX-Road-Metrics/issues/221","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/221/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-30T22:32:22.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4361655590","node_id":"PR_kwDOFr-Nvs7XSGrt","number":220,"state":"open","title":"chore(deps): bump the python-minor-patch group across 6 directories with 6 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-30T22:32:22.000Z","updated_at":"2026-04-30T22:33:27.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":6,"packages":[{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 2 updates in the /anonymizer_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver) and [psycopg2](https://github.com/psycopg/psycopg2).\nBumps the python-minor-patch group with 2 updates in the /collector_module directory: [requests](https://github.com/psf/requests) and [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 1 update in the /corrector_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 2 updates in the /opendata_collector_module directory: [requests](https://github.com/psf/requests) and [pymongo](https://github.com/mongodb/mongo-python-driver).\nBumps the python-minor-patch group with 3 updates in the /opendata_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [psycopg2](https://github.com/psycopg/psycopg2) and [django](https://github.com/django/django).\nBumps the python-minor-patch group with 3 updates in the /reports_module directory: [pymongo](https://github.com/mongodb/mongo-python-driver), [matplotlib](https://github.com/matplotlib/matplotlib) and [pillow](https://github.com/python-pillow/Pillow).\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.11 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 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/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\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/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.16.0...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.16.0 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 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/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory 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/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by...\n\n_Description has been truncated_","html_url":"https://github.com/nordic-institute/X-Road-Metrics/pull/220","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nordic-institute%2FX-Road-Metrics/issues/220","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/220/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-27T22:31:53.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4339256101","node_id":"PR_kwDOHTdvBs7WIng2","number":1590,"state":"closed","title":"deps(ibis): bump the all group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T23:10:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T22:31:53.000Z","updated_at":"2026-05-04T23:10:38.000Z","time_to_close":607123,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":33,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"ibis-framework","old_version":"10.8.0","new_version":"12.0.0","repository_url":"https://github.com/ibis-project/ibis"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.49.2","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.19.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.5.2","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.2","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.13","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"53.0.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"1.0.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.5","new_version":"4.2.6","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.105.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.1","repository_url":"https://github.com/apache/spark"},{"name":"pyopenssl","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"wren-engine","old_version":"0.1.0","new_version":"0.3.0","repository_url":"https://github.com/Canner/wren-engine"},{"name":"matplotlib","old_version":"3.10.8","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.2","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.15.1","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.39.3","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 33 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.13.3` |\n| [ibis-framework](https://github.com/ibis-project/ibis) | `10.8.0` | `12.0.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.49.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.19.0` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.5.2` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.13` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `53.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `1.0.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.5` | `4.2.6` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.105.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.1` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `26.0.0` | `26.1.0` |\n| [wren-engine](https://github.com/Canner/wren-engine) | `0.1.0` | `0.3.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.8` | `3.10.9` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.3` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.49` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.15.12` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.15.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.39.3` | `1.40.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ibis-framework` from 10.8.0 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ibis-project/ibis/releases\"\u003eibis-framework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ibis-project/ibis/blob/main/docs/release_notes_generated.qmd\"\u003eibis-framework's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003eBackend == \u0026quot;some non backend object\u0026quot;\u003c/code\u003e (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a5e7c2298d1582261c0963040a687c3987507c62\"\u003ea5e7c22\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/ibis-project/ibis/commit/01e429b210f19f87e0284bd18fb072df6d3baa59\"\u003e\u003ccode\u003e01e429b\u003c/code\u003e\u003c/a\u003e chore(release): 12.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/537b346aecbaaad232d08ae9a12d38d211ae0926\"\u003e\u003ccode\u003e537b346\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/76c3b63b33f9e6ee2993e2a2875f22ed3e405349\"\u003e\u003ccode\u003e76c3b63\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/da202da06c17a525caf767f0f995f65108a8f3f3\"\u003e\u003ccode\u003eda202da\u003c/code\u003e\u003c/a\u003e chore(deps): update apache/druid docker tag to v36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003e\u003ccode\u003eba0218f\u003c/code\u003e\u003c/a\u003e fix(mysql): use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/a4ef82f82ef103fd233560adce0fbe220481d7ef\"\u003e\u003ccode\u003ea4ef82f\u003c/code\u003e\u003c/a\u003e chore(deps): update aws-actions/configure-aws-credentials action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/601cd8f3dc18c7f8a91aa91319b68aaa181a8a16\"\u003e\u003ccode\u003e601cd8f\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/singlestore-labs/singlestoredb-dev docker tag to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/14c912425af4b318733fdc1460913ccfa4613414\"\u003e\u003ccode\u003e14c9124\u003c/code\u003e\u003c/a\u003e chore(deps): update materialize/materialized docker tag to v26.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/b746edfb660c2b8155debc135884376742cc6929\"\u003e\u003ccode\u003eb746edf\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.30\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/7da40126f178a29d6211f8cfe29421585cff59fc\"\u003e\u003ccode\u003e7da4012\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade ruff, and fix lint violations (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11899\"\u003e#11899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ibis-project/ibis/compare/10.8.0...12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.49.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.49.0.dev0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.48.0...v2.49.0-dev0\"\u003e2.49.0-dev0\u003c/a\u003e (2026-01-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove deprecated rsa dependency (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e98cf69284d3620619a70b54fb0b9533caf11878\"\u003ee98cf69284d3620619a70b54fb0b9533caf11878\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-auth/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2\"\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.7 to 3.11.8\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.8\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\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.8 - 2026-03-31\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/5cbb3d0398a2f42de51210270286fecd798c5d78\"\u003e\u003ccode\u003e5cbb3d0\u003c/code\u003e\u003c/a\u003e 3.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4195d7f263e33076295b75efdcbaf6a55af8674e\"\u003e\u003ccode\u003e4195d7f\u003c/code\u003e\u003c/a\u003e writer::half\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d00641b69410728a735f0855eb1c2843b0a5819b\"\u003e\u003ccode\u003ed00641b\u003c/code\u003e\u003c/a\u003e writer::uuid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c84d9b4ba4853781af943fa5c493e261e2f82b84\"\u003e\u003ccode\u003ec84d9b4\u003c/code\u003e\u003c/a\u003e build and compatibility misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4547234b681fac5e0e0734cf44c21e75f9654e43\"\u003e\u003ccode\u003e4547234\u003c/code\u003e\u003c/a\u003e ffi::numpy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/0d4a5ad1f17a72528ba027554466fdec6580cdeb\"\u003e\u003ccode\u003e0d4a5ad\u003c/code\u003e\u003c/a\u003e datetime PyRef idiom\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/e93a13d372ec956d027e71d023eb534b8445ac85\"\u003e\u003ccode\u003ee93a13d\u003c/code\u003e\u003c/a\u003e Cross-compile avoids maturin v1.12 build-details.json error\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.7...3.11.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.o...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1590","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1590","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1590/packages"}},{"old_version":"2.9.9","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-27T06:04:10.000Z","version_change":"2.9.9 → 2.9.12","issue":{"uuid":"4333432637","node_id":"PR_kwDOAP9cqc7V1zvm","number":6959,"state":"closed","title":"Bump psycopg2 from 2.9.9 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T08:23:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T06:04:10.000Z","updated_at":"2026-04-27T08:23:43.000Z","time_to_close":8363,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.9","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.12\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.9\u0026new-version=2.9.12)](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/OCHA-DAP/hdx-ckan/pull/6959","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCHA-DAP%2Fhdx-ckan/issues/6959","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6959/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-27T04:55:46.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4333185441","node_id":"PR_kwDOAJbZm87V1BSJ","number":5416,"state":"open","title":"chore(deps): bump psycopg2 from 2.9.11 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T04:55:46.000Z","updated_at":"2026-04-27T05:10:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.11 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.11\u0026new-version=2.9.12)](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/GeotrekCE/Geotrek-admin/pull/5416","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeotrekCE%2FGeotrek-admin/issues/5416","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5416/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-24T00:44:41.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4319715415","node_id":"PR_kwDORzGfAM7VKsQ1","number":22,"state":"open","title":"chore(deps)(deps): Bump the all-python group with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-24T00:44:41.000Z","updated_at":"2026-04-24T00:44:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): Bump","group_name":"all-python","update_count":34,"packages":[{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"46.0.6","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-api-core","old_version":"2.30.0","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-api-python-client","old_version":"2.193.0","new_version":"2.194.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.49.1","new_version":"2.49.2","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-httplib2","old_version":"0.3.0","new_version":"0.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-oauthlib","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"googleapis-common-protos","old_version":"1.73.1","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"hf-xet","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/huggingface/xet-core"},{"name":"huggingface-hub","old_version":"1.8.0","new_version":"1.11.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"langchain-core","old_version":"1.2.23","new_version":"1.3.1","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langchain-text-splitters","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"langsmith","old_version":"0.7.22","new_version":"0.7.34","repository_url":"https://github.com/langchain-ai/langsmith-sdk"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"26.0","new_version":"26.1","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":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pypdf","old_version":"6.9.2","new_version":"6.10.2","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"sentence-transformers","old_version":"5.3.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"setuptools","old_version":"81.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"transformers","old_version":"5.4.0","new_version":"5.6.2","repository_url":"https://github.com/huggingface/transformers"},{"name":"typer","old_version":"0.24.1","new_version":"0.24.2","repository_url":"https://github.com/fastapi/typer"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python group with 34 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.6` | `46.0.7` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.30.0` | `2.30.3` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.193.0` | `2.194.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.49.1` | `2.49.2` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.3.0` | `0.3.1` |\n| [google-auth-oauthlib](https://github.com/googleapis/google-cloud-python) | `1.3.0` | `1.3.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.73.1` | `1.74.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.2` | `1.4.3` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.8.0` | `1.11.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [langchain-core](https://github.com/langchain-ai/langchain) | `1.2.23` | `1.3.1` |\n| [langchain-text-splitters](https://github.com/langchain-ai/langchain) | `1.1.1` | `1.1.2` |\n| [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.22` | `0.7.34` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.3` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.9.2` | `6.10.2` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.3.0` | `5.4.1` |\n| [setuptools](https://github.com/pypa/setuptools) | `81.0.0` | `82.0.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.4.0` | `5.6.2` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.24.2` |\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 `charset-normalizer` from 3.4.6 to 3.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.6...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.3\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.3/\"\u003ehttps://pypi.org/project/click/8.3.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-3\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/30\"\u003ehttps://github.com/pallets/click/milestone/30\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/1026\"\u003e#1026\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1477\"\u003e#1477\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2775\"\u003e#2775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3298\"\u003e#3298\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3299\"\u003e#3299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3238\"\u003e#3238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/654\"\u003e#654\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/843\"\u003e#843\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/951\"\u003e#951\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3235\"\u003e#3235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3151\"\u003e#3151\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3177\"\u003e#3177\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2836\"\u003e#2836\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2837\"\u003e#2837\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3165\"\u003e#3165\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3262\"\u003e#3262\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3280\"\u003e#3280\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3111\"\u003e#3111\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3189\"\u003e#3189\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3250\"\u003e#3250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2865\"\u003e#2865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2879\"\u003e#2879\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\u003c/a\u003e\u003c/p\u003e\n\u003c!-- 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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse :func:\u003ccode\u003eshlex.split\u003c/code\u003e to split pager and editor commands into \u003ccode\u003eargv\u003c/code\u003e\nlists for :class:\u003ccode\u003esubprocess.Popen\u003c/code\u003e, removing \u003ccode\u003eshell=True\u003c/code\u003e.\n:issue:\u003ccode\u003e1026\u003c/code\u003e :pr:\u003ccode\u003e1477\u003c/code\u003e :pr:\u003ccode\u003e2775\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eTypeError\u003c/code\u003e when rendering help for an option whose default value is\nan object that doesn't support equality comparison with strings, such as\n\u003ccode\u003esemver.Version\u003c/code\u003e. :issue:\u003ccode\u003e3298\u003c/code\u003e :pr:\u003ccode\u003e3299\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix pager test pollution under parallel execution by using pytest's\n\u003ccode\u003etmp_path\u003c/code\u003e fixture instead of a shared temporary file path. :pr:\u003ccode\u003e3238\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values in a \u003ccode\u003edefault_map\u003c/code\u003e as absent, so they fall\nthrough to the next default source instead of being used as the value.\n:issue:\u003ccode\u003e3224\u003c/code\u003e :pr:\u003ccode\u003e3240\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePatch \u003ccode\u003epdb.Pdb\u003c/code\u003e in \u003ccode\u003eCliRunner\u003c/code\u003e isolation so \u003ccode\u003epdb.set_trace()\u003c/code\u003e,\n\u003ccode\u003ebreakpoint()\u003c/code\u003e, and debuggers subclassing \u003ccode\u003epdb.Pdb\u003c/code\u003e (ipdb, pdbpp) can\ninteract with the real terminal instead of the captured I/O streams.\n:issue:\u003ccode\u003e654\u003c/code\u003e :issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e843\u003c/code\u003e :pr:\u003ccode\u003e951\u003c/code\u003e :pr:\u003ccode\u003e3235\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional randomized parallel test execution using \u003ccode\u003epytest-randomly\u003c/code\u003e and\n\u003ccode\u003epytest-xdist\u003c/code\u003e to detect test pollution and race conditions. :pr:\u003ccode\u003e3151\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd contributor documentation for running stress tests, randomized\nparallel tests, and Flask smoke tests. :pr:\u003ccode\u003e3151\u003c/code\u003e :pr:\u003ccode\u003e3177\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eShow custom \u003ccode\u003eshow_default\u003c/code\u003e string in prompts, matching the existing\nhelp text behavior. :issue:\u003ccode\u003e2836\u003c/code\u003e :pr:\u003ccode\u003e2837\u003c/code\u003e :pr:\u003ccode\u003e3165\u003c/code\u003e :pr:\u003ccode\u003e3262\u003c/code\u003e :pr:\u003ccode\u003e3280\u003c/code\u003e\n:pr:\u003ccode\u003e3328\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003edefault=True\u003c/code\u003e with boolean \u003ccode\u003eflag_value\u003c/code\u003e always returning the\n\u003ccode\u003eflag_value\u003c/code\u003e instead of \u003ccode\u003eTrue\u003c/code\u003e. The \u003ccode\u003edefault=True\u003c/code\u003e to \u003ccode\u003eflag_value\u003c/code\u003e\nsubstitution now only applies to non-boolean flags, where \u003ccode\u003eTrue\u003c/code\u003e acts as a\nsentinel meaning \u0026quot;activate this flag by default\u0026quot;. For boolean flags,\n\u003ccode\u003edefault=True\u003c/code\u003e is returned as a literal value. :issue:\u003ccode\u003e3111\u003c/code\u003e :pr:\u003ccode\u003e3239\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003emake_default_short_help\u003c/code\u003e as private API. :issue:\u003ccode\u003e3189\u003c/code\u003e :pr:\u003ccode\u003e3250\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCliRunner\u003c/code\u003e's redirected streams now expose the original file descriptor\nvia \u003ccode\u003efileno()\u003c/code\u003e, so that \u003ccode\u003efaulthandler\u003c/code\u003e, \u003ccode\u003esubprocess\u003c/code\u003e, and other\nC-level consumers no longer crash with \u003ccode\u003eio.UnsupportedOperation\u003c/code\u003e.\n:issue:\u003ccode\u003e2865\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange :class:\u003ccode\u003eParameterSource\u003c/code\u003e to an :class:\u003ccode\u003e~enum.IntEnum\u003c/code\u003e and reorder\nits members from most to least explicit, so values can be compared to\ncheck whether a parameter was explicitly provided. :issue:\u003ccode\u003e2879\u003c/code\u003e :pr:\u003ccode\u003e3248\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\u003e\u003c/li\u003e\n\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/pallets/click/commit/c06d2d0a6aee6bcc50bd8257be2a4a592f4e75d0\"\u003e\u003ccode\u003ec06d2d0\u003c/code\u003e\u003c/a\u003e Release 8.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f1f191ecd2c790b161187c78e7c88440e9524e5c\"\u003e\u003ccode\u003ef1f191e\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bb59ba0fd279ca085d1113f0499b6a602ca31081\"\u003e\u003ccode\u003ebb59ba0\u003c/code\u003e\u003c/a\u003e Apply format guidelines to commits since latest 8.3.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4a352253c9ff013e36d11e4a6820d36d00ff2cd4\"\u003e\u003ccode\u003e4a35225\u003c/code\u003e\u003c/a\u003e Reduce blast-radius of \u003ccode\u003eUNSET\u003c/code\u003e in \u003ccode\u003edefault_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3240\"\u003e#3240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c07bb936de43fd303f9cfbefe248ab23fd2199c8\"\u003e\u003ccode\u003ec07bb93\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into unset-in-default-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/c7e1ba8448cbcb2cdd9c1c7f4a592e863dcc3995\"\u003e\u003ccode\u003ec7e1ba8\u003c/code\u003e\u003c/a\u003e Reorder \u003ccode\u003eParameterSource\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3248\"\u003e#3248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/76552ff1e8c85837f911fc34037e702ae4327eda\"\u003e\u003ccode\u003e76552ff\u003c/code\u003e\u003c/a\u003e Show default string in prompt (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3328\"\u003e#3328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac5cec5fe54e5a691e7bac17f441ce9498e0744c\"\u003e\u003ccode\u003eac5cec5\u003c/code\u003e\u003c/a\u003e Reorder ParameterSource from most to least explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c452e00e6772931b7071d9316b82b77e5b8f280\"\u003e\u003ccode\u003e8c452e0\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' into show-default-string-in-prompt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/8c95c73bd5ef89eac638f85f1904a104ba4b1a32\"\u003e\u003ccode\u003e8c95c73\u003c/code\u003e\u003c/a\u003e Reconcile default value passing and default activation (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3239\"\u003e#3239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.3\"\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.6 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\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/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.6...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.25.2 to 3.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/533\"\u003etox-dev/filelock#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/534\"\u003etox-dev/filelock#534\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.28.0...3.29.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.28.0...3.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/529\"\u003etox-dev/filelock#529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.27.0...3.28.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.27.0...3.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.27.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/528\"\u003etox-dev/filelock#528\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.26.1...3.27.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.1...3.27.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.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(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling by \u003ca href=\"https://github.com/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\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/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.26.0...3.26.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.0...3.26.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/517\"\u003etox-dev/filelock#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(ci): restore git credentials for release job by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/520\"\u003etox-dev/filelock#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/524\"\u003etox-dev/filelock#524\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.25.2...3.26.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.25.2...3.26.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/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.0 (2026-04-19)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows :pr:\u003ccode\u003e534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency :pr:\u003ccode\u003e533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 :pr:\u003ccode\u003e530\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.28.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again :pr:\u003ccode\u003e529\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.1 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling :pr:\u003ccode\u003e518\u003c/code\u003e - by :user:\u003ccode\u003enaarob\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 :pr:\u003ccode\u003e525\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.0 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking :pr:\u003ccode\u003e524\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e523\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 :pr:\u003ccode\u003e522\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e520\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e519\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e517\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e516\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e514\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.2 (2026-03-11)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(unix): suppress EIO on close in Docker bind mounts :pr:\u003ccode\u003e513\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.1 (2026-03-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e510\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(win): restore best-effort lock file cleanup on release :pr:\u003ccode\u003e511\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/469b47f192b0a9f8c8b795d9b9f57212c716959b\"\u003e\u003ccode\u003e469b47f\u003c/code\u003e\u003c/a\u003e Release 3.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/e85d07281987e0855ba67c03dfdef342ec1097d5\"\u003e\u003ccode\u003ee85d072\u003c/code\u003e\u003c/a\u003e ✨ feat(soft): enable stale lock detection on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5ee1712ced6916b2768812ee378183319339944\"\u003e\u003ccode\u003ef5ee171\u003c/code\u003e\u003c/a\u003e 🐛 fix(async): use single-thread executor for lock consistency (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2a954588cdf462a786835eeb102240ce79fecc8b\"\u003e\u003ccode\u003e2a95458\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/55de20c0819652362881906fa289feff5a323c19\"\u003e\u003ccode\u003e55de20c\u003c/code\u003e\u003c/a\u003e Release 3.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/476b0e4a92776fe530b5d993247342f039004174\"\u003e\u003ccode\u003e476b0e4\u003c/code\u003e\u003c/a\u003e 🐛 fix(ci): unbreak release workflow, publish to PyPI again (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/824713edc32b54efd66566907f97c1238502810e\"\u003e\u003ccode\u003e824713e\u003c/code\u003e\u003c/a\u003e ✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9879de9298db93ffba0a9f58d9de75e9e2a00fc1\"\u003e\u003ccode\u003e9879de9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4cfab498b6916f89be46152efa4a72e9731be98f\"\u003e\u003ccode\u003e4cfab49\u003c/code\u003e\u003c/a\u003e Release 3.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/734c9f26e8107ad24886129fc68865f0b46cf71f\"\u003e\u003ccode\u003e734c9f2\u003c/code\u003e\u003c/a\u003e 🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handli...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.30.0 to 2.30.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-api-core: v2.30.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.30.2...google-api-core-v2.30.3\"\u003ev2.30.3\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eavoid repeated scan of entire venv via packages_distributions() at import time (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16579\"\u003e#16579\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c5728b24\"\u003ec5728b24\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-api-core: v2.30.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.30.1...google-api-core-v2.30.2\"\u003ev2.30.2\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eallow Protobuf 7.x (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16532\"\u003e#16532\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ffb4b712\"\u003effb4b712\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d3d684007a429dc64d8480ceda04658306c52842\"\u003e\u003ccode\u003ed3d6840\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260409T210905Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16604\"\u003e#16604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/442c47a279f02859b18a46e71c469e54c04bebc2\"\u003e\u003ccode\u003e442c47a\u003c/code\u003e\u003c/a\u003e docs: update the list of available APIs (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16571\"\u003e#16571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a58063c2ef1c2f56ed966264f48ebac0b82f0e1b\"\u003e\u003ccode\u003ea58063c\u003c/code\u003e\u003c/a\u003e chore(spanner): block spanner release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16601\"\u003e#16601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f38cd44be98acb9a51c30b47ac9688a44e19c2fb\"\u003e\u003ccode\u003ef38cd44\u003c/code\u003e\u003c/a\u003e feat(pandas-gbq): drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16476\"\u003e#16476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/961eacd039a2583bc019e0502bc4c1c1d88ab410\"\u003e\u003ccode\u003e961eacd\u003c/code\u003e\u003c/a\u003e feat(bigquery-magics): drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16587\"\u003e#16587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/77c1df6dfe9f2fe589d28f04820115053b8259ed\"\u003e\u003ccode\u003e77c1df6\u003c/code\u003e\u003c/a\u003e test: adds storage to list of system tests to run (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16578\"\u003e#16578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6cb5af5227e09e99ee12bb3542374f683b75d4b4\"\u003e\u003ccode\u003e6cb5af5\u003c/code\u003e\u003c/a\u003e chore: add librarian integration for google-cloud-bigtable (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16551\"\u003e#16551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/485b03a018f736f048743e3ac3684eca8d817fb4\"\u003e\u003ccode\u003e485b03a\u003c/code\u003e\u003c/a\u003e chore: optimize zonal tests cloning and fix paths (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16581\"\u003e#16581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/70dc6bfc328de37abe96afbf5555e484fdc80058\"\u003e\u003ccode\u003e70dc6bf\u003c/code\u003e\u003c/a\u003e fix(spanner): catch recursion and decode errors in proto parsing to p… (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16561\"\u003e#16561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c5728b24fac3363c10a8cfb315b96d3e6459cf06\"\u003e\u003ccode\u003ec5728b2\u003c/code\u003e\u003c/a\u003e fix(perf): avoid repeated scan of entire venv via packages_distributions() at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-api-core-v2.30.0...google-api-core-v2.30.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.193.0 to 2.194.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.194.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.193.0...v2.194.0\"\u003e2.194.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c63837ea9aeb0f90bc3d9bed82272538c65f711d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c63837ea9aeb0f90bc3d9bed82272538c65f711d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eagentregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dcb4b8996c6f66c6624b5d55762bd3b3b2657188\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dcb4b8996c6f66c6624b5d55762bd3b3b2657188\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/03a174d2847d72f29e830b632dfd286bae061aef\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/03a174d2847d72f29e830b632dfd286bae061aef\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6bcf698be695688ae2b8f495dd8b1facbea36652\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6bcf698be695688ae2b8f495dd8b1facbea36652\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ea9256491a9082b46c10d8d123ac8d6117b5242e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ea9256491a9082b46c10d8d123ac8d6117b5242e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealertcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5dff47cddcdd1ea2a01cb06f4fc51b4615412c1d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5dff47cddcdd1ea2a01cb06f4fc51b4615412c1d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealertcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/70213df06da6dca4e0ca0773f65ecce0057ae588\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/70213df06da6dca4e0ca0773f65ecce0057ae588\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e30b3b574430d6d5786133182a61fe309d5ff8ea\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e30b3b574430d6d5786133182a61fe309d5ff8ea\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8c81a7c312e9eb83779d694d704d9a7ece84960b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8c81a7c312e9eb83779d694d704d9a7ece84960b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigee:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8a3ff159fe52d11541cd3c7081f27d3a92ec157c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8a3ff159fe52d11541cd3c7081f27d3a92ec157c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapikeys:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/cec06010ccf58100aa875b5a82b5a4dc6119e3d3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/cec06010ccf58100aa875b5a82b5a4dc6119e3d3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eappengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7935e3c7858b5273941d95507f1c5f395bb73dfd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7935e3c7858b5273941d95507f1c5f395bb73dfd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eartifactregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2904124c55cfbad06dd531294d19df9b03ffd08b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2904124c55cfbad06dd531294d19df9b03ffd08b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3872d47f6e3077b77ca5e623d683aa4c9290826b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3872d47f6e3077b77ca5e623d683aa4c9290826b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6e98d8bf562dcaf4628db21f8572b3fcd4333991\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6e98d8bf562dcaf4628db21f8572b3fcd4333991\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquerydatatransfer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5feddee128ec217348d270c82dd2d8049f175f04\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5feddee128ec217348d270c82dd2d8049f175f04\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ff91f076330299320b29103467078bcaf5bbc4c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ff91f076330299320b29103467078bcaf5bbc4c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigtableadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/45c3a5686de4f12a2b9cbc73dca8be5a8837a4ac\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/45c3a5686de4f12a2b9cbc73dca8be5a8837a4ac\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigtableadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/84f19284846c9f3f230bac672bb2812ded4d891a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/84f19284846c9f3f230bac672bb2812ded4d891a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a1faed1dbb4c75c36f6f75209bc3d8e948030283\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a1faed1dbb4c75c36f6f75209bc3d8e948030283\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f3eca84fe126d4d004da30e84d2f854452c838e8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f3eca84fe126d4d004da30e84d2f854452c838e8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f6cf5d2801b1bb0cffbd8d078d97287950bb9e88\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f6cf5d2801b1bb0cffbd8d078d97287950bb9e88\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbilling:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1dcb981e3521fd102a537203e557a46cb77b78db\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1dcb981e3521fd102a537203e557a46cb77b78db\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbuild:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9a5a1cd8b87c0a8cee8e2fb07c9df4f4088e59cd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9a5a1cd8b87c0a8cee8e2fb07c9df4f4088e59cd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclouddeploy:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/92270421dad5b1cdd1de7c9bed8a3570c396ca93\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/92270421dad5b1cdd1de7c9bed8a3570c396ca93\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f3f0ad25b33f0811a524a414f93a80dc9b2f9a32\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f3f0ad25b33f0811a524a414f93a80dc9b2f9a32\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudsearch:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a26acd7ac001905649b2c913129fb3ed7a0ed567\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a26acd7ac001905649b2c913129fb3ed7a0ed567\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudtasks:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2af118b3c0fa958e8954f7fced6e2218214a66c0\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2af118b3c0fa958e8954f7fced6e2218214a66c0\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8e83dc996f64254ce826d59d32abba9ce22f7789\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8e83dc996f64254ce826d59d32abba9ce22f7789\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/da8c35f88c21181d8d46ed699e6166062b3250f4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/da8c35f88c21181d8d46ed699e6166062b3250f4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econfig:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b4fa3f2f6e1c1437270e2fd4cdb5d77be085606a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b4fa3f2f6e1c1437270e2fd4cdb5d77be085606a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/78dece310ddbc068cafb7877ea7b9c51ba00465d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/78dece310ddbc068cafb7877ea7b9c51ba00465d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/76bc2b43080e4eb98b149869c43c383e4133c884\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/76bc2b43080e4eb98b149869c43c383e4133c884\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/03b49af4aa6dbd4b0b34c1aa3db5a607c660f37a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/03b49af4aa6dbd4b0b34c1aa3db5a607c660f37a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b1c7a26316b7d00752c4012ede0d65632fd63faf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b1c7a26316b7d00752c4012ede0d65632fd63faf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0b40ba83f99859afd3a58ebcc20bfda6bc484b7f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0b40ba83f99859afd3a58ebcc20bfda6bc484b7f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/120be612dc45186c77091d671c167deb73c0740f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/120be612dc45186c77091d671c167deb73c0740f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d47e46693a4d760502e0f576884ef01c8836b45c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d47e46693a4d760502e0f576884ef01c8836b45c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/820112c5fdea8506ed88cc149e558e6a2a1a585d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/820112c5fdea8506ed88cc149e558e6a2a1a585d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003eb6b55b6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8ccc149637c65d8e5ed1a89ee5ca43c029b02fc4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8ccc149637c65d8e5ed1a89ee5ca43c029b02fc4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b260d854ef3f5dd67d37b29c91df2bc3ffc35693\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b260d854ef3f5dd67d37b29c91df2bc3ffc35693\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatamigration:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/308cc75c64f69e5d361b2d518638588b35a95279\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/308cc75c64f69e5d361b2d518638588b35a95279\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e4b1cfc7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataplex:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d4a71f77594865f4ca7d6793e4d886251b7ac943\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d4a71f77594865f4ca7d6793e4d886251b7ac943\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e2d0b3b1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/10436ecbe9201c8af9ad235a05d77e5e05e6462e\"\u003e\u003ccode\u003e10436ec\u003c/code\u003e\u003c/a\u003e chore(main): release 2.194.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/2d0b3b1eb39659a172bea5fdbf99f78d094a98f9\"\u003e\u003ccode\u003e2d0b3b1\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2737\"\u003e#2737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/4b1cfc7c82a5b51aeaf39962e9b793a445e1a14f\"\u003e\u003ccode\u003e4b1cfc7\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2735\"\u003e#2735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/a82af07571da6c3c0ccfd2d9cf234785c3783e57\"\u003e\u003ccode\u003ea82af07\u003c/code\u003e\u003c/a\u003e chore: Migrate gsutil usage to gcloud storage (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2705\"\u003e#2705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c67ad84d61094e\"\u003e\u003ccode\u003eb6b55b6\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2732\"\u003e#2732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.193.0...v2.194.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.49.1 to 2.49.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth-httplib2` from 0.3.0 to 0.3.1\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/4e80530190d3e3d7d0dec26b8daf97c2db15c2df\"\u003e\u003ccode\u003e4e80530\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16193\"\u003e#16193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f8d933cfeca182e00eb589da2ab0df61579c6f1\"\u003e\u003ccode\u003e0f8d933\u003c/code\u003e\u003c/a\u003e chore: add gapic-generator integration test presubmit (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16465\"\u003e#16465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ab44f7e4224b554e9365aafbd4ecb559ed975aa6\"\u003e\u003ccode\u003eab44f7e\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency requests to v2.33.0 [security] (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16464\"\u003e#16464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/943a979f14b1f39608cdb2658823f087a599e418\"\u003e\u003ccode\u003e943a979\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/sphinx-docfx-yaml into package...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8c6703da295ed30200bb38f637b745b64f34d690\"\u003e\u003ccode\u003e8c6703d\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/gapic-generator-python into pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e3731d58d5371f166e75742e257e2524d21e83cb\"\u003e\u003ccode\u003ee3731d5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into migration.gapic-generator-python.migration.2026-03-2...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/20f57241d9f690abc31c1a19ee5a0d33c667f300\"\u003e\u003ccode\u003e20f5724\u003c/code\u003e\u003c/a\u003e Trigger CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/76a8b58e1f73328243ff838a4652bdcc4ead31b5\"\u003e\u003ccode\u003e76a8b58\u003c/code\u003e\u003c/a\u003e chore: skip spanner django presubmits using dorny filter (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16196\"\u003e#16196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/46ee8a094fdb121f49fa600f91d1b8c0818a9253\"\u003e\u003ccode\u003e46ee8a0\u003c/code\u003e\u003c/a\u003e fix presubmit\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-httplib2-v0.3.0...google-auth-httplib2-v0.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth-oauthlib` from 1.3.0 to 1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-auth-oauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/gcp-sphinx-docfx-yaml/CHANGELOG.md\"\u003egoogle-auth-oauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://www.github.com/googleapis/sphinx-docfx-yaml/compare/v1.3.0...v1.3.1\"\u003e1.3.1\u003c/a\u003e (2021-11-15)\u003c/h3\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve square bracketed references (\u003ca href=\"https://redirect.github.com/googleapis/sphinx-docfx-yaml/issues/146\"\u003e#146\u003c/a\u003e) (\u003ca href=\"https://www.github.com/googleapis/sphinx-docfx-yaml/commit/fa049ace9d14e1f9993313983ad3426ff041672d\"\u003efa049ac\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4e80530190d3e3d7d0dec26b8daf97c2db15c2df\"\u003e\u003ccode\u003e4e80530\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16193\"\u003e#16193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ab44f7e4224b554e9365aafbd4ecb559ed975aa6\"\u003e\u003ccode\u003eab44f7e\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency requests to v2.33.0 [security] (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16464\"\u003e#16464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/943a979f14b1f39608cdb2658823f087a599e418\"\u003e\u003ccode\u003e943a979\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/sphinx-docfx-yaml into package...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/e3731d58d5371f166e75742e257e2524d21e83cb\"\u003e\u003ccode\u003ee3731d5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into migration.gapic-generator-python.migration.2026-03-2...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c23b0670def4d049a81e073260cdd664c909e358\"\u003e\u003ccode\u003ec23b067\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c174901a7dfa72268191a0212e565c7baa5b3658\"\u003e\u003ccode\u003ec174901\u003c/code\u003e\u003c/a\u003e add placeholder for system test nox session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-oauthlib-v1.3.0...google-auth-oauthlib-v1.3.1\"\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.73.1 to 1.74.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.74.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.73.1...googleapis-common-protos-v1.74.0\"\u003ev1.74.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003epublish new error reasons (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd origin to AttributeContext.Request (PiperOrigin-RevId: 892442206) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epublish client batch config schema (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eupdate API common type documentation (PiperOrigin-RevId: 890591600) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix documentation formatting (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate various comments (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate SelectiveGapicGeneration usage doc (PiperOrigin-RevId: 892649773) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate license year (PiperOrigin-RevId: 889289393) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/79a06514c46129c4b3b303363ead0be592131596\"\u003e\u003ccode\u003e79a0651\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260402T161941Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16539\"\u003e#16539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4c541cf2a364ef7ba39bc48c0a6a063a9334d31a\"\u003e\u003ccode\u003e4c541cf\u003c/code\u003e\u003c/a\u003e fix: allow redis 7.x (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16533\"\u003e#16533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ffb4b712121d04a38399e0bd3dc9773e96798564\"\u003e\u003ccode\u003effb4b71\u003c/code\u003e\u003c/a\u003e fix: allow Protobuf 7.x (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16532\"\u003e#16532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d49690d87659c18a8eaeb32d83ac1fea8158304a\"\u003e\u003ccode\u003ed49690d\u003c/code\u003e\u003c/a\u003e chore: enable python-crc32c kokoro presubmits (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16524\"\u003e#16524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/beaf708556e65b8046d7c3b860ed734b694a7613\"\u003e\u003ccode\u003ebeaf708\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/python-crc32c into packages/go...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003e\u003ccode\u003ec36aa61\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260401T195653Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16513\"\u003e#16513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0c877650196784d1c262d65b58b086c66d2d5502\"\u003e\u003ccode\u003e0c87765\u003c/code\u003e\u003c/a\u003e chore: bypass kokoro presubmits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d0610bfd7bae168bb6e21ee66b51c85397e8f97b\"\u003e\u003ccode\u003ed0610bf\u003c/code\u003e\u003c/a\u003e tests: temporarily skip system test to unblock code migration as per offline ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c75...\n\n_Description has been truncated_","html_url":"https://github.com/GridWorldOrganization/GridWorldRAG/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GridWorldOrganization%2FGridWorldRAG/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"}},{"old_version":"\u003e=2.9.9","new_version":"\u003e=2.9.12","update_type":"patch","path":"/sidecar","pr_created_at":"2026-04-23T00:01:46.000Z","version_change":"\u003e=2.9.9 → \u003e=2.9.12","issue":{"uuid":"4312485443","node_id":"PR_kwDORhP9Uc7UzE3r","number":65,"state":"closed","title":"build(deps): Update psycopg2 requirement from \u003e=2.9.9 to \u003e=2.9.12 in /sidecar","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-28T00:02:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T00:01:46.000Z","updated_at":"2026-04-28T00:02:30.000Z","time_to_close":432035,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Update","packages":[{"name":"psycopg2","old_version":"\u003e=2.9.9","new_version":"\u003e=2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":"/sidecar","ecosystem":"pip"},"body":"Updates the requirements on [psycopg2](https://github.com/psycopg/psycopg2) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/cobriensr/Options-Strike-Calculator/pull/65","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cobriensr%2FOptions-Strike-Calculator/issues/65","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/65/packages"}},{"old_version":"2.9.11","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-21T19:14:14.000Z","version_change":"2.9.11 → 2.9.12","issue":{"uuid":"4304778570","node_id":"PR_kwDOFnDCfc7UaIaN","number":659,"state":"open","title":"Bump psycopg2 from 2.9.11 to 2.9.12","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-21T19:14:14.000Z","updated_at":"2026-05-08T20:29:12.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.11 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/jan-janssen/shared-conda-environment/pull/659","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jan-janssen%2Fshared-conda-environment/issues/659","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/659/packages"}},{"old_version":"2.9.3","new_version":"2.9.12","update_type":"patch","path":null,"pr_created_at":"2026-04-21T00:35:33.000Z","version_change":"2.9.3 → 2.9.12","issue":{"uuid":"4299520293","node_id":"PR_kwDOGwKG_s7UJIiY","number":324,"state":"open","title":"Bump psycopg2 from 2.9.3 to 2.9.12","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-21T00:35:33.000Z","updated_at":"2026-04-21T00:35:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.3","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.3 to 2.9.12.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\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/psycopg/psycopg2/commits\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.3\u0026new-version=2.9.12)](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/dzaslavskiy/identity-idva-gpo/pull/324","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzaslavskiy%2Fidentity-idva-gpo/issues/324","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/324/packages"}},{"old_version":"2.9.10","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-04-10T22:59:30.000Z","version_change":"2.9.10 → 2.9.11","issue":{"uuid":"4242119517","node_id":"PR_kwDOR_eNC87Rlo4q","number":4,"state":"closed","title":"Bump psycopg2 from 2.9.10 to 2.9.11","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-21T21:16:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T22:59:30.000Z","updated_at":"2026-04-21T21:16:55.000Z","time_to_close":944243,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.10 to 2.9.11.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.10\u0026new-version=2.9.11)](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/preklis/cms-beu/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/preklis%2Fcms-beu/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"2.9.10","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-03-01T03:14:33.000Z","version_change":"2.9.10 → 2.9.11","issue":{"uuid":"4006095093","node_id":"PR_kwDOI9fKOs7HEjGb","number":43,"state":"closed","title":"build(deps): Bump the all-django-dependencies group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-01T03:14:46.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T03:14:33.000Z","updated_at":"2026-04-01T03:14:48.000Z","time_to_close":2678413,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"all-django-dependencies","update_count":19,"packages":[{"name":"django","old_version":"5.1.8","new_version":"5.2.11","repository_url":"https://github.com/django/django"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"django-tailwind","old_version":"4.0.1","new_version":"4.4.2","repository_url":"https://github.com/timonweb/django-tailwind"},{"name":"django-browser-reload","old_version":"1.18.0","new_version":"1.21.0","repository_url":"https://github.com/adamchainz/django-browser-reload"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"django-environ","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/joke2k/django-environ"},{"name":"django-admin-interface","old_version":"0.30.0","new_version":"0.32.0","repository_url":"https://github.com/fabiocaccamo/django-admin-interface"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-debug-toolbar","old_version":"5.1.0","new_version":"6.2.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-import-export","old_version":"4.3.7","new_version":"4.4.0","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.31.0","new_version":"0.33.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"django-simple-history","old_version":"3.8.0","new_version":"3.11.0","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"djhtml","old_version":"3.0.7","new_version":"3.0.10","repository_url":"https://github.com/rtts/djhtml"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-django","old_version":"4.11.1","new_version":"4.12.0","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"pylint-django","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/pylint-dev/pylint-django"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-django-dependencies group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.8` | `5.2.11` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.1` |\n| [django-tailwind](https://github.com/timonweb/django-tailwind) | `4.0.1` | `4.4.2` |\n| [django-browser-reload](https://github.com/adamchainz/django-browser-reload) | `1.18.0` | `1.21.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.2.1` |\n| [django-environ](https://github.com/joke2k/django-environ) | `0.12.0` | `0.13.0` |\n| [django-admin-interface](https://github.com/fabiocaccamo/django-admin-interface) | `0.30.0` | `0.32.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `5.1.0` | `6.2.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.3.7` | `4.4.0` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.31.0` | `0.33.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.8.0` | `3.11.0` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [djhtml](https://github.com/rtts/djhtml) | `3.0.7` | `3.0.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.11.1` | `4.12.0` |\n| [pylint-django](https://github.com/pylint-dev/pylint-django) | `2.6.1` | `2.7.0` |\n\n\nUpdates `django` from 5.1.8 to 5.2.11\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4a96a199bbb1d3dca45ea16bf643216e179cb8bc\"\u003e\u003ccode\u003e4a96a19\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.11 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ab0ad8d39555292b55123adeac57ed64c776f8d9\"\u003e\u003ccode\u003eab0ad8d\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2026-1312 -- Raised ValueError when FilteredRelation aliases...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e863ee273c6553e9b6fa4960a17acb535851857b\"\u003e\u003ccode\u003ee863ee2\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1312 -- Protected order_by() from SQL injection via al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3e68ccdc11c127758745ddf0b4954990b14892bc\"\u003e\u003ccode\u003e3e68ccd\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1287 -- Protected against SQL injection in column alia...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9f2ada875bbee62ac46032e38ddb22755d67ae5a\"\u003e\u003ccode\u003e9f2ada8\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1285 -- Mitigated potential DoS in django.utils.text.T...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/17a1d64a58ef24c0c3b78d66d86f5415075f18f0\"\u003e\u003ccode\u003e17a1d64\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-1207 -- Prevented SQL injections in RasterField lookup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1ba90069c12836db46981bdf75b0e661db5849ce\"\u003e\u003ccode\u003e1ba9006\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-14550 -- Optimized repeated header parsing in ASGI req...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/184e38ab0a061c365f5775676a074796d8abd02f\"\u003e\u003ccode\u003e184e38a\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-13473 -- Standardized timing of check_password() in mo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/d8c551d21459b260f50906f1e48bdf381e620533\"\u003e\u003ccode\u003ed8c551d\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.11 and 4.2.28.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/3ea659dc1b8d72d3cab2de17d28cd9d2d06d6eed\"\u003e\u003ccode\u003e3ea659d\u003c/code\u003e\u003c/a\u003e [5.2.x] Clarified regression nature of data loss bug in docs/releases/5.2.10....\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.8...5.2.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.2.1 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.2.1...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-tailwind` from 4.0.1 to 4.4.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/timonweb/django-tailwind/blob/master/CHANGELOG.md\"\u003edjango-tailwind's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.4.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue with CSS path configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue when \u003ccode\u003eraw_input\u003c/code\u003e is used instead of \u003ccode\u003einput\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStandalone Tailwind CSS binary support via \u003ca href=\"https://github.com/timonweb/pytailwindcss\"\u003epytailwindcss\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_USE_STANDALONE_BINARY\u003c/code\u003e setting to force standalone binary mode;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_STANDALONE_BINARY_VERSION\u003c/code\u003e setting to control standalone binary version (default: \u003ccode\u003ev4.1.16\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eAutomatic detection of standalone vs npm-based installations (checks for \u003ccode\u003epackage.json\u003c/code\u003e presence);\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eapp_template_v4_standalone/\u003c/code\u003e cookiecutter template for standalone binary apps;\u003c/li\u003e\n\u003cli\u003eUpdates documentation;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.js\u003c/code\u003e is now optional when using standalone binary mode;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaces Poetry with UV for dependency management;\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eextract_host_and_port\u003c/code\u003e to support standalone port numbers (e.g., \u003ccode\u003epython manage.py runserver 55555\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eUpdates tox configuration to use \u003ccode\u003edev\u003c/code\u003e dependency group;\u003c/li\u003e\n\u003cli\u003eRemoves Docker instructions from documentation;\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.10;\u003c/li\u003e\n\u003cli\u003eEnsures Django 6.0 support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003emanage.py tailwind plugin_install\u003c/code\u003e command to manage Tailwind CSS plugins;\u003c/li\u003e\n\u003cli\u003eAdds optional daisyUI support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003edev\u003c/code\u003e command that starts Django development server and Tailwind watcher simultaneously;\u003c/li\u003e\n\u003cli\u003eAutomatically installs Honcho if not available when using \u003ccode\u003edev\u003c/code\u003e command;\u003c/li\u003e\n\u003cli\u003eCreates \u003ccode\u003eProcfile.tailwind\u003c/code\u003e for customizable process management;\u003c/li\u003e\n\u003cli\u003eUpdates documentation with \u003ccode\u003edev\u003c/code\u003e command usage;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Tailwind CSS v4+;\u003c/li\u003e\n\u003cli\u003eSets Tailwind CSS v4+ as the default version, with the option to use v3.x via \u003ccode\u003e--tailwind-version 3\u003c/code\u003e flag;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBrings Python 3.10 support back;\u003c/li\u003e\n\u003cli\u003eAdds Python 3.13 support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/dfb5a0004cc06ba9106fa0e15f479dabaa8a0f29\"\u003e\u003ccode\u003edfb5a00\u003c/code\u003e\u003c/a\u003e Releases 4.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/216c9e9b65737711748a6085071b040c9684c137\"\u003e\u003ccode\u003e216c9e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/244\"\u003e#244\u003c/a\u003e from synthghost/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/2b5a013b2310b9e101df93a481512e721e868797\"\u003e\u003ccode\u003e2b5a013\u003c/code\u003e\u003c/a\u003e Fix settings-based CSS path configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/bfd4250f812a4bb286a29ce1a0dd5e758709201e\"\u003e\u003ccode\u003ebfd4250\u003c/code\u003e\u003c/a\u003e Add Star History section to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4c8ef987284a9dc3bd837d980740efabb4088287\"\u003e\u003ccode\u003e4c8ef98\u003c/code\u003e\u003c/a\u003e Delete manage.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4b0e42826fbeeb8a2a9df24f8ec911d61fdd7003\"\u003e\u003ccode\u003e4b0e428\u003c/code\u003e\u003c/a\u003e Releases 4.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/46fb9a99f278582b4c9f4a8abb027c442e5e26df\"\u003e\u003ccode\u003e46fb9a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/241\"\u003e#241\u003c/a\u003e from evangeloskp/fix-distlib-import-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/34150e8de77ed499c98c0352e15030691b2bf623\"\u003e\u003ccode\u003e34150e8\u003c/code\u003e\u003c/a\u003e Fix ImportError by replacing distlib.compat.raw_input with built-in input()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/91c509a11d10f35997fcc2bce8b9241577831f68\"\u003e\u003ccode\u003e91c509a\u003c/code\u003e\u003c/a\u003e Update CI badge in README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4ac8150297c0b655f368f98faf9be8ec619b50f0\"\u003e\u003ccode\u003e4ac8150\u003c/code\u003e\u003c/a\u003e Releases 4.4.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/timonweb/django-tailwind/compare/4.0.1...4.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-browser-reload` from 1.18.0 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-browser-reload/blob/main/CHANGELOG.rst\"\u003edjango-browser-reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.0 (2025-09-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Content Security Policy (CSP) nonce support to the listener script tag, in both the middleware and the Jinja template tag.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#340](https://github.com/adamchainz/django-browser-reload/issues/340) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/340\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.20.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.19.0 (2025-09-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the django-jinja template backend.\u003c/p\u003e\n\u003cp\u003eThanks to Jake Howard in \u003ccode\u003ePR [#309](https://github.com/adamchainz/django-browser-reload/issues/309) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/309\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d21e7d8a04381dedf0047b11f1cbefab02dc2567\"\u003e\u003ccode\u003ed21e7d8\u003c/code\u003e\u003c/a\u003e Version 1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/41835a58b7b68e0e329ff1a3b9b127342675260c\"\u003e\u003ccode\u003e41835a5\u003c/code\u003e\u003c/a\u003e Add CSP nonce support (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/3571cb8b20440020499f1bfd30bed2cef5a84b62\"\u003e\u003ccode\u003e3571cb8\u003c/code\u003e\u003c/a\u003e Improve usage and description\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/1061afd357cabf6c1e674b6581d5057d82e7983c\"\u003e\u003ccode\u003e1061afd\u003c/code\u003e\u003c/a\u003e Promote django-watchfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ec228460b7756eab7e9488b1aa59824cf8646997\"\u003e\u003ccode\u003eec22846\u003c/code\u003e\u003c/a\u003e Remove outdated ASGI note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/10301ed78fe5e7a268bfd155f45fa0d3703fc0f9\"\u003e\u003ccode\u003e10301ed\u003c/code\u003e\u003c/a\u003e Improve tagline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d944e3371e43ad4d7db0baa47f1a2c050bc42e32\"\u003e\u003ccode\u003ed944e33\u003c/code\u003e\u003c/a\u003e Version 1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/b77a1dcd7bc22705b65d4b553a30e10fab536223\"\u003e\u003ccode\u003eb77a1dc\u003c/code\u003e\u003c/a\u003e Correct testing of Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/9794a774f5bf2c7b18a7adbb420fdea709a7b39b\"\u003e\u003ccode\u003e9794a77\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ca5fbd0e15f19e0ee0ec67963035a0bb3c7a5b5a\"\u003e\u003ccode\u003eca5fbd0\u003c/code\u003e\u003c/a\u003e Version 1.19.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-browser-reload/compare/1.18.0...1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` 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/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env from FIFOs (Unix) by \u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) by \u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini by \u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml by \u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\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/theskumar/python-dotenv/commit/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-environ` from 0.12.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/django-environ/releases\"\u003edjango-environ's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ccode\u003ev0.13.0\u003c/code\u003e_ - 18-February-2026\u003c/h2\u003e\n\u003cp\u003eAdded\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded optional warnings when defaults are used\n\u003ccode\u003e[#582](https://github.com/joke2k/django-environ/issues/582) \u0026lt;https://github.com/joke2k/django-environ/pull/582\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echoices\u003c/code\u003e argument support for value validation in \u003ccode\u003eEnv.str(...)\u003c/code\u003e\n\u003ccode\u003e[#555](https://github.com/joke2k/django-environ/issues/555) \u0026lt;https://github.com/joke2k/django-environ/pull/555\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded Valkey support via \u003ccode\u003evalkey://\u003c/code\u003e and \u003ccode\u003evalkeys://\u003c/code\u003e cache URL schemes\n\u003ccode\u003e[#554](https://github.com/joke2k/django-environ/issues/554) \u0026lt;https://github.com/joke2k/django-environ/pull/554\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003erediss://\u003c/code\u003e scheme in channels URL parsing\n\u003ccode\u003e[#573](https://github.com/joke2k/django-environ/issues/573) \u0026lt;https://github.com/joke2k/django-environ/pull/573\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded django-prometheus database backend aliases to DB URL parsing schemes\n\u003ccode\u003e[#559](https://github.com/joke2k/django-environ/issues/559) \u0026lt;https://github.com/joke2k/django-environ/pull/559\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\n+++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeclared support for Python 3.14\n\u003ccode\u003e[#580](https://github.com/joke2k/django-environ/issues/580) \u0026lt;https://github.com/joke2k/django-environ/pull/580\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeclared support for Django 5.2 and Django 6.0\n\u003ccode\u003e[#578](https://github.com/joke2k/django-environ/issues/578) \u0026lt;https://github.com/joke2k/django-environ/pull/578\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixed\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hint coverage and related lint issues\n\u003ccode\u003e[#546](https://github.com/joke2k/django-environ/issues/546) \u0026lt;https://github.com/joke2k/django-environ/pull/546\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed typos in the FAQ page\n\u003ccode\u003e[#445](https://github.com/joke2k/django-environ/issues/445) \u0026lt;https://github.com/joke2k/django-environ/pull/445\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12.1\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed PostgreSQL cluster URL parsing with bracketed IPv6 hosts in recent\nPython versions, preventing failures in runtime URL parsing and related\nregression tests\n\u003ccode\u003e[#574](https://github.com/joke2k/django-environ/issues/574) \u0026lt;https://github.com/joke2k/django-environ/issues/574\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed debug logging in \u003ccode\u003eEnv.get_value()\u003c/code\u003e to avoid evaluating lazy default\nobjects when DEBUG logging is enabled\n\u003ccode\u003e[#571](https://github.com/joke2k/django-environ/issues/571) \u0026lt;https://github.com/joke2k/django-environ/issues/571\u0026gt;\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/joke2k/django-environ/blob/develop/CHANGELOG.rst\"\u003edjango-environ's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev0.13.0\u003c/code\u003e_ - 18-February-2026\u003c/h2\u003e\n\u003cp\u003eAdded\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded optional warnings when defaults are used\n\u003ccode\u003e[#582](https://github.com/joke2k/django-environ/issues/582) \u0026lt;https://github.com/joke2k/django-environ/pull/582\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003echoices\u003c/code\u003e argument support for value validation in \u003ccode\u003eEnv.str(...)\u003c/code\u003e\n\u003ccode\u003e[#555](https://github.com/joke2k/django-environ/issues/555) \u0026lt;https://github.com/joke2k/django-environ/pull/555\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded Valkey support via \u003ccode\u003evalkey://\u003c/code\u003e and \u003ccode\u003evalkeys://\u003c/code\u003e cache URL schemes\n\u003ccode\u003e[#554](https://github.com/joke2k/django-environ/issues/554) \u0026lt;https://github.com/joke2k/django-environ/pull/554\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003erediss://\u003c/code\u003e scheme in channels URL parsing\n\u003ccode\u003e[#573](https://github.com/joke2k/django-environ/issues/573) \u0026lt;https://github.com/joke2k/django-environ/pull/573\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded django-prometheus database backend aliases to DB URL parsing schemes\n\u003ccode\u003e[#559](https://github.com/joke2k/django-environ/issues/559) \u0026lt;https://github.com/joke2k/django-environ/pull/559\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanged\n+++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeclared support for Python 3.14\n\u003ccode\u003e[#580](https://github.com/joke2k/django-environ/issues/580) \u0026lt;https://github.com/joke2k/django-environ/pull/581\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eDeclared support for Django 5.2 and Django 6.0\n\u003ccode\u003e[#578](https://github.com/joke2k/django-environ/issues/578) \u0026lt;https://github.com/joke2k/django-environ/pull/578\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixed\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hint coverage and related lint issues\n\u003ccode\u003e[#546](https://github.com/joke2k/django-environ/issues/546) \u0026lt;https://github.com/joke2k/django-environ/pull/546\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed typos in the FAQ page\n\u003ccode\u003e[#445](https://github.com/joke2k/django-environ/issues/445) \u0026lt;https://github.com/joke2k/django-environ/pull/445\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003ev0.12.1\u003c/code\u003e_ - 13-February-2026\u003c/h2\u003e\n\u003cp\u003eFixed\n+++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed PostgreSQL cluster URL parsing with bracketed IPv6 hosts in recent\nPython versions, preventing failures in runtime URL parsing and related\nregression tests\n\u003ccode\u003e[#574](https://github.com/joke2k/django-environ/issues/574) \u0026lt;https://github.com/joke2k/django-environ/issues/574\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed debug logging in \u003ccode\u003eEnv.get_value()\u003c/code\u003e to avoid evaluating lazy default\nobjects when DEBUG logging is enabled\n\u003ccode\u003e[#571](https://github.com/joke2k/django-environ/issues/571) \u0026lt;https://github.com/joke2k/django-environ/issues/571\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/00746d0f63d37dcafad527ea7a820a46f8fb81e0\"\u003e\u003ccode\u003e00746d0\u003c/code\u003e\u003c/a\u003e docs: add Django 5.2 and 6.0 support to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/d1f115932aed9d21c38c898c3ae4b4b678cd210d\"\u003e\u003ccode\u003ed1f1159\u003c/code\u003e\u003c/a\u003e Release 0.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/d82e361ddb7ffdad01451623d806d402c3a657fd\"\u003e\u003ccode\u003ed82e361\u003c/code\u003e\u003c/a\u003e Add optional warnings when defaults are used (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/a78f7c888d840c1b1903371f2424ee641906c923\"\u003e\u003ccode\u003ea78f7c8\u003c/code\u003e\u003c/a\u003e Fixed some typos in the FAQ page (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/445\"\u003e#445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/24b299e002f3bcc14983eef4be770edb143338dc\"\u003e\u003ccode\u003e24b299e\u003c/code\u003e\u003c/a\u003e Feature/add choice parameter and raise an exception if fetched value is not w...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/c4414130f4cf11704e9f1ea446c68074f69c0b54\"\u003e\u003ccode\u003ec441413\u003c/code\u003e\u003c/a\u003e Add django-prometheus database backends to DB_SCHEMES (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/559\"\u003e#559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/98a0aad4c10e789d84e572a3f97a5a9cf9080973\"\u003e\u003ccode\u003e98a0aad\u003c/code\u003e\u003c/a\u003e Fix lint issues in environ type hints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/f4e77e41e629ae8631da9582241f7db527085699\"\u003e\u003ccode\u003ef4e77e4\u003c/code\u003e\u003c/a\u003e feat(cache): add valkey and valkeys as allowed schemes (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/dd4d308baea427b5e820a8ac326b0d63e557c956\"\u003e\u003ccode\u003edd4d308\u003c/code\u003e\u003c/a\u003e Add type hints (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/django-environ/commit/3137c4f733f90a14a12da9fc252d446357190537\"\u003e\u003ccode\u003e3137c4f\u003c/code\u003e\u003c/a\u003e Support lower case options for Django Redis cache backend (\u003ca href=\"https://redirect.github.com/joke2k/django-environ/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/django-environ/compare/v0.12.0...v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-admin-interface` from 0.30.0 to 0.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases\"\u003edjango-admin-interface's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.30.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/blob/main/CHANGELOG.md\"\u003edjango-admin-interface's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.32.0\"\u003e0.32.0\u003c/a\u003e - 2025-12-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.1\"\u003e0.31.1\u003c/a\u003e - 2025-12-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.0\"\u003e0.31.0\u003c/a\u003e - 2025-11-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.30.1\"\u003e0.30.1\u003c/a\u003e - 2025-06-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/commit/5d95d802f4085b1215cc6a62fa6d8458b7339c3b\"\u003e\u003ccode\u003e5d95d80\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/2117573b233cc989e340bdfb3ea5b9977fe99f7e\"\u003e\u003ccode\u003e2117573\u003c/code\u003e\u003c/a\u003e Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/d45c09e62a8654a3f90bf3fc9fa96d413fc58afc\"\u003e\u003ccode\u003ed45c09e\u003c/code\u003e\u003c/a\u003e Update .pre-commit-config.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fea108a89016484fcf0fd90693aa73382a6edbdb\"\u003e\u003ccode\u003efea108a\u003c/code\u003e\u003c/a\u003e Update FUNDING.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/052f8e60be23463dc8e98e8d90f08ba321d62f8e\"\u003e\u003ccode\u003e052f8e6\u003c/code\u003e\u003c/a\u003e Upgrade \u003ccode\u003ecreate-matrix-action\u003c/code\u003e version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8474b3313448ca48dffdd66e9b014becc81cd423\"\u003e\u003ccode\u003e8474b33\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/1cbb618ac8cd3a1ad67dcff4fcea9528411dc1d6\"\u003e\u003ccode\u003e1cbb618\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/bcb6053e8390883ee1375ae7d44d3024f55d3538\"\u003e\u003ccode\u003ebcb6053\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8de832489e40d0f5e44c2eb0f1cdb024b21ae9c1\"\u003e\u003ccode\u003e8de8324\u003c/code\u003e\u003c/a\u003e Update translations.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fd9fa790a6576b15b8fc6c466ce72332eab33fab\"\u003e\u003ccode\u003efd9fa79\u003c/code\u003e\u003c/a\u003e fix modal popup navigation links (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/compare/0.30.0...0.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\u003c/code\u003e_)\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 5.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate RedirectsPanel in favor of the HistoryPanel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2223\"\u003edjango-commons/django-debug-toolbar#2223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd cache view to example app by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2243\"\u003edjango-commons/django-debug-toolbar#2243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd zizmor for GHA security analysis by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2201\"\u003edjango-commons/django-debug-toolbar#2201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd indent size of 2 for yml files. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2244\"\u003edjango-commons/django-debug-toolbar#2244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReduce the number of test runs in CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2248\"\u003edjango-commons/django-debug-toolbar#2248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStore the code coverage files on each test run for CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2245\"\u003edjango-commons/django-debug-toolbar#2245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse double-quotes for GITHUB_REF_NAME shell variable. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2250\"\u003edjango-commons/django-debug-toolbar#2250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2249\"\u003edjango-commons/django-debug-toolbar#2249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2251\"\u003edjango-commons/django-debug-toolbar#2251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersist the credentials because coverage_comment needs them. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2252\"\u003edjango-commons/django-debug-toolbar#2252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow cache alias instead of backend repr in calls table by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2219\"\u003edjango-commons/django-debug-toolbar#2219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Django 5.0 to save some CI resources by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2253\"\u003edjango-commons/django-debug-toolbar#2253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBye Python 39 by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2254\"\u003edjango-commons/django-debug-toolbar#2254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for enabling/disabling SQLPanel tracking of toolbar model queries by \u003ca href=\"https://github.com/theShinigami\"\u003e\u003ccode\u003e@​theShinigami\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2211\"\u003edjango-commons/django-debug-toolbar#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce toolbar vs panel organization of configs. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2257\"\u003edjango-commons/django-debug-toolbar#2257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore monospace font for templates and stacktraces by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2261\"\u003edjango-commons/django-debug-toolbar#2261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test to confirm assertNumQueries by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2259\"\u003edjango-commons/django-debug-toolbar#2259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django built-in CSP nonce support by \u003ca href=\"https://github.com/ahumeau\"\u003e\u003ccode\u003e@​ahumeau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2267\"\u003edjango-commons/django-debug-toolbar#2267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dependabot cooldown. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2270\"\u003edjango-commons/django-debug-toolbar#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the hash and version of python-coverage-comment-action by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2269\"\u003edjango-commons/django-debug-toolbar#2269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix string representation of values in settings panel by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2263\"\u003edjango-commons/django-debug-toolbar#2263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare support for Django 6.0 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2272\"\u003edjango-commons/django-debug-toolbar#2272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude dependabot and pre-commit bot commits from GitHub release notes by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2278\"\u003edjango-commons/django-debug-toolbar#2278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove comment for clarity in \u003ccode\u003eDebugToolbarMiddleware\u003c/code\u003e call method by \u003ca href=\"https://github.com/rnazali\"\u003e\u003ccode\u003e@​rnazali\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2283\"\u003edjango-commons/django-debug-toolbar#2283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type hints for History Panel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2247\"\u003edjango-commons/django-debug-toolbar#2247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize CI with concurrency by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2287\"\u003edjango-commons/django-debug-toolbar#2287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd LLM usage checkbox to PR template by \u003ca href=\"https://github.com/yeongbin05\"\u003e\u003ccode\u003e@​yeongbin05\u003c/code\u003e\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/chnm/graffitihouse/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chnm%2Fgraffitihouse/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"}},{"old_version":"2.9.9","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-02-19T08:37:15.000Z","version_change":"2.9.9 → 2.9.11","issue":{"uuid":"3961657675","node_id":"PR_kwDORTuhwc7Ez_qZ","number":10,"state":"open","title":"Bump psycopg2 from 2.9.9 to 2.9.11","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-02-19T08:37:15.000Z","updated_at":"2026-02-19T08:37:15.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"psycopg2","old_version":"2.9.9","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.11.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.11\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.9\u0026new-version=2.9.11)](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/bhavikpatel/geonode_nepal_ithari/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhavikpatel%2Fgeonode_nepal_ithari/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"2.9.6","new_version":"2.9.11","update_type":"patch","path":"/requirements","pr_created_at":"2026-02-12T22:00:31.000Z","version_change":"2.9.6 → 2.9.11","issue":{"uuid":"3934239497","node_id":"PR_kwDOBwbUJs7DZ_Dm","number":149,"state":"closed","title":"Bump the all-dependencies group in /requirements with 38 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-12T22:53:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-12T22:00:31.000Z","updated_at":"2026-02-12T22:54:00.000Z","time_to_close":3208,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":38,"packages":[{"name":"bleach","old_version":"6.0.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"celery","old_version":"5.4.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"celery-redbeat","old_version":"2.2.0","new_version":"2.3.3","repository_url":"https://github.com/sibson/redbeat"},{"name":"cryptography","old_version":"42.0.4","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"dockerfile-parse","old_version":"2.0.0","new_version":"2.0.1","repository_url":"https://github.com/containerbuildsystem/dockerfile-parse"},{"name":"flask","old_version":"2.3.2","new_version":"2.3.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-admin","old_version":"1.6.1","new_version":"2.0.2","repository_url":"https://github.com/pallets-eco/flask-admin"},{"name":"flask-babel","old_version":"3.1.0","new_version":"4.0.0","repository_url":"https://github.com/python-babel/flask-babel"},{"name":"flask-debugtoolbar","old_version":"0.14.1","new_version":"0.16.0","repository_url":"https://github.com/pallets-eco/flask-debugtoolbar"},{"name":"flask-mail","old_version":"0.9.1","new_version":"0.10.0","repository_url":"https://github.com/pallets-eco/flask-mail"},{"name":"flask-migrate","old_version":"3.0.1","new_version":"4.1.0","repository_url":"https://github.com/miguelgrinberg/flask-migrate"},{"name":"flask-nav3","old_version":"0.7.0","new_version":"0.7.2","repository_url":"https://github.com/wtfo-guru/flask-nav3"},{"name":"flask-security-too","old_version":"5.3.3","new_version":"5.7.1","repository_url":"https://github.com/pallets-eco/flask-security"},{"name":"flask-sock","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/miguelgrinberg/flask-sock"},{"name":"flask-sqlalchemy","old_version":"2.5.1","new_version":"3.1.1","repository_url":"https://github.com/pallets-eco/flask-sqlalchemy"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.3","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hupper","old_version":"1.10.3","new_version":"1.12.1","repository_url":"https://github.com/Pylons/hupper"},{"name":"hvac","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hvac/hvac"},{"name":"kubernetes","old_version":"30.1.0","new_version":"35.0.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"psycopg2","old_version":"2.9.6","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"py-consul","old_version":"1.5.1","new_version":"1.7.1","repository_url":"https://github.com/criteo-forks/py-consul"},{"name":"pygithub","old_version":"1.59.1","new_version":"2.8.1","repository_url":"https://github.com/pygithub/pygithub"},{"name":"python-dxf","old_version":"10.0.0","new_version":"12.1.1","repository_url":"https://github.com/davedoesdev/dxf"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"redis","old_version":"3.5.3","new_version":"7.1.1","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.6.0","new_version":"2.52.0"},{"name":"sqlalchemy","old_version":"1.4.48","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-continuum","old_version":"1.3.14","new_version":"1.6.0","repository_url":"https://github.com/kvesteri/sqlalchemy-continuum"},{"name":"typing-extensions","old_version":"4.7.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"unidecode","old_version":"1.2.0","new_version":"1.4.0","repository_url":"https://github.com/kmike/text-unidecode"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"bandit","old_version":"1.7.9","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"black","old_version":"24.4.2","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mypy","old_version":"1.11.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.3","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"ruff","old_version":"0.5.1","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-pyyaml","old_version":"6.0.12.20240311","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.0.20240712","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /requirements with 38 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `6.0.0` | `6.3.0` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.6.2` |\n| [celery-redbeat](https://github.com/sibson/redbeat) | `2.2.0` | `2.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.4` | `46.0.5` |\n| [dockerfile-parse](https://github.com/containerbuildsystem/dockerfile-parse) | `2.0.0` | `2.0.1` |\n| [flask](https://github.com/pallets/flask) | `2.3.2` | `2.3.3` |\n| [flask-admin](https://github.com/pallets-eco/flask-admin) | `1.6.1` | `2.0.2` |\n| [flask-babel](https://github.com/python-babel/flask-babel) | `3.1.0` | `4.0.0` |\n| [flask-debugtoolbar](https://github.com/pallets-eco/flask-debugtoolbar) | `0.14.1` | `0.16.0` |\n| [flask-mail](https://github.com/pallets-eco/flask-mail) | `0.9.1` | `0.10.0` |\n| [flask-migrate](https://github.com/miguelgrinberg/flask-migrate) | `3.0.1` | `4.1.0` |\n| [flask-nav3](https://github.com/wtfo-guru/flask-nav3) | `0.7.0` | `0.7.2` |\n| [flask-security-too](https://github.com/pallets-eco/flask-security) | `5.3.3` | `5.7.1` |\n| [flask-sock](https://github.com/miguelgrinberg/flask-sock) | `0.6.0` | `0.7.0` |\n| [flask-sqlalchemy](https://github.com/pallets-eco/flask-sqlalchemy) | `2.5.1` | `3.1.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.3` |\n| [hupper](https://github.com/Pylons/hupper) | `1.10.3` | `1.12.1` |\n| [hvac](https://github.com/hvac/hvac) | `2.3.0` | `2.4.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `35.0.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.6` | `2.9.11` |\n| [py-consul](https://github.com/criteo-forks/py-consul) | `1.5.1` | `1.7.1` |\n| [pygithub](https://github.com/pygithub/pygithub) | `1.59.1` | `2.8.1` |\n| [python-dxf](https://github.com/davedoesdev/dxf) | `10.0.0` | `12.1.1` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n| [redis](https://github.com/redis/redis-py) | `3.5.3` | `7.1.1` |\n| [sentry-sdk[flask]](https://github.com/getsentry/sentry-python) | `2.6.0` | `2.52.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `1.4.48` | `2.0.46` |\n| [sqlalchemy-continuum](https://github.com/kvesteri/sqlalchemy-continuum) | `1.3.14` | `1.6.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.7.1` | `4.15.0` |\n| [unidecode](https://github.com/kmike/text-unidecode) | `1.2.0` | `1.4.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.6.3` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.9` | `1.9.3` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.11.0` | `1.19.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.5.1` | `0.15.0` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20240311` | `6.0.12.20250915` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20240712` | `2.32.4.20260107` |\n\nUpdates `bleach` from 6.0.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/v6.0.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 `celery` from 5.4.0 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\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/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.4.0...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery-redbeat` from 2.2.0 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sibson/redbeat/blob/main/CHANGES.txt\"\u003ecelery-redbeat's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3dev (unreleased)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 and add CI coverage through Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3 (2025-07-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Python 3.12 support, thanks \u003ca href=\"https://github.com/AnkiHubSoftware\"\u003e\u003ccode\u003e@​AnkiHubSoftware\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, update RedBeatSchedulerEntry definitions for improved type safety and correctness, thanks \u003ca href=\"https://github.com/sotosapp\"\u003e\u003ccode\u003e@​sotosapp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, Redbeat no longer updating tasks definitions on Redis \u003ca href=\"https://redirect.github.com/sibson/redbeat/issues/289\"\u003e#289\u003c/a\u003e, thanks \u003ca href=\"https://github.com/semoac\"\u003e\u003ccode\u003e@​semoac\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci, fix testpypi publish by checking out source before version update\u003c/li\u003e\n\u003cli\u003etest, pin fakeredis\u0026lt;2.27.0 for Python 3.8 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0 (2025-02-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix, allow disabling of lock with redbeat_lock_key = None, thanks \u003ca href=\"https://github.com/jscaria\"\u003e\u003ccode\u003e@​jscaria\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/molog\"\u003e\u003ccode\u003e@​molog\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bertosantamaria\"\u003e\u003ccode\u003e@​bertosantamaria\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, track changes to primary in Sentinel, thanks \u003ca href=\"https://github.com/Niccolum\"\u003e\u003ccode\u003e@​Niccolum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, static entries honour last_run_at, thanks \u003ca href=\"https://github.com/kchamz\"\u003e\u003ccode\u003e@​kchamz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc updates, thanks \u003ca href=\"https://github.com/miketheman\"\u003e\u003ccode\u003e@​miketheman\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cikay\"\u003e\u003ccode\u003e@​cikay\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/sibson/redbeat/commit/2b85c88951fdd2964610819c1a59e4914e4c205b\"\u003e\u003ccode\u003e2b85c88\u003c/code\u003e\u003c/a\u003e prepare for release of 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/3d107dd7cf5c310bcd05fd8ba76da622a0f84b13\"\u003e\u003ccode\u003e3d107dd\u003c/code\u003e\u003c/a\u003e update for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/30e812dd1a178dca02390c4f4a3e8fe79c43ca39\"\u003e\u003ccode\u003e30e812d\u003c/code\u003e\u003c/a\u003e makefile: add version target using grep for warning-free version check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/1242fde248ed7aeebe7cd148f873977f0face2e8\"\u003e\u003ccode\u003e1242fde\u003c/code\u003e\u003c/a\u003e update changelog for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f35e31cfb0f9c0cf6662821cc4d4d7ec1d45d144\"\u003e\u003ccode\u003ef35e31c\u003c/code\u003e\u003c/a\u003e ci: fetch full git history for pbr versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/acf82610cb0fab5caa3418c42efcfb4715686d2e\"\u003e\u003ccode\u003eacf8261\u003c/code\u003e\u003c/a\u003e build: switch to pbr for dynamic versioning and simplify workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/a317b5ff3a4f7b6508c8d91ae55f3ac736d646be\"\u003e\u003ccode\u003ea317b5f\u003c/code\u003e\u003c/a\u003e bump version for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/5e185f63ba10458545ec4c8a91747006da65de63\"\u003e\u003ccode\u003e5e185f6\u003c/code\u003e\u003c/a\u003e ci: use .dev0.\u0026lt;githash\u0026gt; for testpypi version (PEP 440/PyPI compliant)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f384d757f8f58ca2cd26d36c13dfb8971461d3de\"\u003e\u003ccode\u003ef384d75\u003c/code\u003e\u003c/a\u003e ci: ensure PEP 440 compliant version for testpypi with git hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/bfc520b778a0234815917e3aba472a27ffabc6f6\"\u003e\u003ccode\u003ebfc520b\u003c/code\u003e\u003c/a\u003e test: pin fakeredis\u0026lt;2.27.0 for Python 3.8 support (see comment)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sibson/redbeat/compare/v2.2.0...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 42.0.4 to 46.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003c/p\u003e\n\u003cp\u003e46.0.2 - 2025-09-30\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-1:\u003c/p\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\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/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2726efdb6d67f1c90cf9c6062d9fe051965586f8\"\u003e\u003ccode\u003e2726efd\u003c/code\u003e\u003c/a\u003e Depend on CFFI 2.0.0 or newer on Python \u0026gt; 3.8 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13448\"\u003e#13448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/62230623d183706632c0eb7822c96ac95e3710a8\"\u003e\u003ccode\u003e6223062\u003c/code\u003e\u003c/a\u003e release 46.0.0 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13446\"\u003e#13446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/42.0.4...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dockerfile-parse` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/releases\"\u003edockerfile-parse's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemoval of python-six module\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/containerbuildsystem/dockerfile-parse/commit/3a4360f78e60ac72b6ffc627135fca27c180c4ad\"\u003e\u003ccode\u003e3a4360f\u003c/code\u003e\u003c/a\u003e Automatic commit of package [python-dockerfile-parse] release [2.0.1-1].\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/7d0e60413dfd6cb7f6dbe2ecb841a8199f6a43a7\"\u003e\u003ccode\u003e7d0e604\u003c/code\u003e\u003c/a\u003e fix(pylint): address broad-exception-raised\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/9cd9cde8a1502e04c9078242964b4bb22eb00c77\"\u003e\u003ccode\u003e9cd9cde\u003c/code\u003e\u003c/a\u003e fix(spec): remove six module\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/compare/2.0.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 2.3.2 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cp\u003eThis is a fix release for the 2.3.x feature branch.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChanges: \u003ca href=\"https://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\"\u003ehttps://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/31?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/31?closed=1\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.3.3\u003c/h2\u003e\n\u003cp\u003eReleased 2023-08-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.12 compatibility.\u003c/li\u003e\n\u003cli\u003eRequire Werkzeug \u0026gt;= 2.3.7.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eRefactor how an app's root and instance paths are determined. :issue:\u003ccode\u003e5160\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3205b53c7cf69d17fee49cac6b84978175b7dd73\"\u003e\u003ccode\u003e3205b53\u003c/code\u003e\u003c/a\u003e release version 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9f9550247a2798b9dcc28081c15e266442f4e28a\"\u003e\u003ccode\u003e9f95502\u003c/code\u003e\u003c/a\u003e bump werkzeug 2.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/02736640095ed6d5a4a409a9658eaca373fd1d48\"\u003e\u003ccode\u003e0273664\u003c/code\u003e\u003c/a\u003e Update dispatch by path example (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5217\"\u003e#5217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/a887e179b8af6a9c582a7918f9f8499ab58032cc\"\u003e\u003ccode\u003ea887e17\u003c/code\u003e\u003c/a\u003e clean up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/aa6d4c3e92bd11a7d449f49f524e54bbb88b89c0\"\u003e\u003ccode\u003eaa6d4c3\u003c/code\u003e\u003c/a\u003e update dispatch-by-path example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/826514b8eb18f6c314cf566630253d35c89e42c3\"\u003e\u003ccode\u003e826514b\u003c/code\u003e\u003c/a\u003e fix flake8 bugbear findings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/6d266f63633f5f127165d4ef836db14a59bbc106\"\u003e\u003ccode\u003e6d266f6\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/17e146ad949b3d80438faf95e81b53c543cb50f5\"\u003e\u003ccode\u003e17e146a\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/8a72b741616556b4f739ea79ab502c2d2038844a\"\u003e\u003ccode\u003e8a72b74\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5211\"\u003e#5211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7255be9626ab56d81bc0ab86db939fcc1da9bca1\"\u003e\u003ccode\u003e7255be9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/2.3.2...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-admin` from 1.6.1 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-admin/releases\"\u003eflask-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes from v1.6.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eConfig variable name\u003c/th\u003e\n\u003cth\u003eWhat's changed\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_SWATCH\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(swatch=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(fluid=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_MAP_ID\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_SEARCH\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LAT\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LONG\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eNew functionality:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python \u0026lt;=3.13\u003c/li\u003e\n\u003cli\u003eThe default query for pymongo can be overridden\u003c/li\u003e\n\u003cli\u003eFlask async routes are supported\u003c/li\u003e\n\u003cli\u003eFlask-Admin now supports the \u003ccode\u003ehost_matching\u003c/code\u003e mode of Flask apps. See documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003eFlask-Admin is now compatible with SQLAlchemy v2+, Flask v3+, WTForms v3+, and Pillow v10+.\u003c/li\u003e\n\u003cli\u003eFlask-Admin now declares its dependencies and supported dependency versions more cleanly, including using pip extras. If you use Flask-Admin with SQLAlchemy, for example, you should use \u003ccode\u003epip install flask-admin[sqlalchemy]\u003c/code\u003e or list \u003ccode\u003eflask-admin[sqlalchemy]\u003c/code\u003e in your requirements.txt or pyproject.toml files.\u003c/li\u003e\n\u003cli\u003eApps using content security policies to restrict the assets that can be loaded can now whitelist Flask-Admin's assets by passing a \u003ccode\u003ecsp_nonce_generator\u003c/code\u003e function to the Admin instance. See examples or documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epage_size_options\u003c/code\u003e can now be configured on Admin models, to restrict the page sizes that users can select. These are now enforced properly and cannot be bypassed by URL hacking.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBootstrap menu icons should show up properly and not duplicated\u003c/li\u003e\n\u003cli\u003eRedis CLI commands are now case insensitive\u003c/li\u003e\n\u003cli\u003eSQLAlchemy boolean filters now convert \u0026quot;1\u0026quot; and \u0026quot;0\u0026quot; to Python booleans, which fixes a type coercion issue with psycopg(3).\u003c/li\u003e\n\u003cli\u003eJinja templates can now be loaded in StrictUndefined mode.\u003c/li\u003e\n\u003cli\u003eRemove an implicit dependency on \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed an error caused by the fallback implementation of \u003ccode\u003egettext()\u003c/code\u003e (when used in templates)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-admin/blob/master/doc/changelog.rst\"\u003eflask-admin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. list-table:: Configuration Changes\n:widths: 50 50\n:header-rows: 1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eConfig variable name\u003c/li\u003e\n\u003cli\u003eWhat's changed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_SWATCH\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(swatch=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(fluid=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_MAP_ID\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_SEARCH\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eGOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LAT\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LONG\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\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/pallets-eco/flask-admin/commit/e26bee40d0aaddf7aaf2bc9d1f8949cfed3a709c\"\u003e\u003ccode\u003ee26bee4\u003c/code\u003e\u003c/a\u003e v2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/6b0a8a03f0ebd3bcf28bfb59390c380c014b031d\"\u003e\u003ccode\u003e6b0a8a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2696\"\u003e#2696\u003c/a\u003e from samialfattani/feature/menu-divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/67c5702d102e89c9ab96f5ed87d446595b9cc3a3\"\u003e\u003ccode\u003e67c5702\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2699\"\u003e#2699\u003c/a\u003e from samialfattani/err_desc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/9336e2d56c372ec697360f0d15fa1ddc93e7941f\"\u003e\u003ccode\u003e9336e2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2685\"\u003e#2685\u003c/a\u003e from pallets-eco/py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/5368f70b925e85f724e5c91b2f8c894fab2855fe\"\u003e\u003ccode\u003e5368f70\u003c/code\u003e\u003c/a\u003e error discription in red color\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/731281b61d21f9fcc58243a71e5ee4d9574dbe3e\"\u003e\u003ccode\u003e731281b\u003c/code\u003e\u003c/a\u003e filter resource warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/0eb8920a5fcde4eae7d69fb463d6ae1f00dea64f\"\u003e\u003ccode\u003e0eb8920\u003c/code\u003e\u003c/a\u003e add menu divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/16d36f25e8d06d099db29b7a29d3b4eeb85b8ca5\"\u003e\u003ccode\u003e16d36f2\u003c/code\u003e\u003c/a\u003e Release v2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/4303e46fa9b782c7136803e77f044c4abd39fa17\"\u003e\u003ccode\u003e4303e46\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2692\"\u003e#2692\u003c/a\u003e from samialfattani/fix_arabic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/d923bbc5b163e92beaa2450c9c5a5532da866489\"\u003e\u003ccode\u003ed923bbc\u003c/code\u003e\u003c/a\u003e fix typos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-admin/compare/v1.6.1...v2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-babel` from 3.1.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/flask-babel/releases\"\u003eflask-babel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for end-of-life Python 3.7. Support PyPy 3.9\u003c/li\u003e\n\u003cli\u003eReplace deprecated locked_cached_property decorator with cached_property (\u003ca href=\"https://redirect.github.com/python-babel/flask-babel/issues/230\"\u003e#230\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/python-babel/flask-babel/commit/a754eade39d9850693dd2b645ae8a2545df7fdf7\"\u003e\u003ccode\u003ea754ead\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.1 → 4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/d42f50c1f80279931279c076c40e2bacf74b4c15\"\u003e\u003ccode\u003ed42f50c\u003c/code\u003e\u003c/a\u003e Dropping Python 3.7 support, adding PyPy 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/db5c2a152330d3095aab868752342dad18653852\"\u003e\u003ccode\u003edb5c2a1\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.0 → 3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/6ca29cdc52587488c46f131dbb3b3cd69f4aa78c\"\u003e\u003ccode\u003e6ca29cd\u003c/code\u003e\u003c/a\u003e Merge branch 'jkittner-flask-2-3-deprecation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/346a45a0e1fbf6fae735c70588754724a0101857\"\u003e\u003ccode\u003e346a45a\u003c/code\u003e\u003c/a\u003e Merge branch 'flask-2-3-deprecation' of github.com:jkittner/flask-babel into ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/dad9165d5cb4494e4473259bf37fc34a21974cad\"\u003e\u003ccode\u003edad9165\u003c/code\u003e\u003c/a\u003e Explicit app factory test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/38f15cd15bdb742cadb81bcb8c8bfb81e0b5a1c5\"\u003e\u003ccode\u003e38f15cd\u003c/code\u003e\u003c/a\u003e Release triggered on public, not creation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/414a5a3dee8639b28ca6edd37e5f91adbc622e37\"\u003e\u003ccode\u003e414a5a3\u003c/code\u003e\u003c/a\u003e replace deprecated locked_cached_property decorator with cached_property\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-babel/flask-babel/compare/v3.1.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-debugtoolbar` from 0.14.1 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/releases\"\u003eflask-debugtoolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/255\"\u003epallets-eco/flask-debugtoolbar#255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.3.0 in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/256\"\u003epallets-eco/flask-debugtoolbar#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop unnecessary Blinker dependency in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/248\"\u003epallets-eco/flask-debugtoolbar#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd static type annotations in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/259\"\u003epallets-eco/flask-debugtoolbar#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e__version__\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/260\"\u003epallets-eco/flask-debugtoolbar#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eFlask.host_matching\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/274\"\u003epallets-eco/flask-debugtoolbar#274\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix prob w/using w/o SQLAlchemy by \u003ca href=\"https://github.com/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/254\"\u003epallets-eco/flask-debugtoolbar#254\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/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd minimal test without extra deps by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/230\"\u003epallets-eco/flask-debugtoolbar#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.2.0 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/224\"\u003epallets-eco/flask-debugtoolbar#224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to dump profiler stats by \u003ca href=\"https://github.com/Dosenpfand\"\u003e\u003ccode\u003e@​Dosenpfand\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/204\"\u003epallets-eco/flask-debugtoolbar#204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003einit_app()\u003c/code\u003e method to \u003ccode\u003eDebugPanel\u003c/code\u003e base class by \u003ca href=\"https://github.com/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport applications using flask.copy_current_request_context by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SQLAlchemy recording warning for versions \u0026gt;= 3 by \u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003edistutils\u003c/code\u003e error on Python 3.12 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/238\"\u003epallets-eco/flask-debugtoolbar#238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove deprecated Flask version attribute by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/243\"\u003epallets-eco/flask-debugtoolbar#243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing whitespace by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/237\"\u003epallets-eco/flask-debugtoolbar#237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ejquery.tablesorter.js\u003c/code\u003e plugin by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/235\"\u003epallets-eco/flask-debugtoolbar#235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e1.12.4\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/236\"\u003epallets-eco/flask-debugtoolbar#236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e3.7.1\u003c/code\u003e and \u003ccode\u003ejquery-migrate\u003c/code\u003e to \u003ccode\u003e3.4.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/241\"\u003epallets-eco/flask-debugtoolbar#241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some \u003ccode\u003ejquery\u003c/code\u003e deprecation warnings by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/242\"\u003epallets-eco/flask-debugtoolbar#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003epkg_resources\u003c/code\u003e with stdlib by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/239\"\u003epallets-eco/flask-debugtoolbar#239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent LookupError when accessing debug_toolbars_var by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/245\"\u003epallets-eco/flask-debugtoolbar#245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall custom Sphinx theme via \u003ccode\u003eextras_require\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/250\"\u003epallets-eco/flask-debugtoolbar#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e.readthedocs.yaml\u003c/code\u003e file by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/246\"\u003epallets-eco/flask-debugtoolbar#246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.0\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/251\"\u003epallets-eco/flask-debugtoolbar#251\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/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.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/pallets-eco/flask-debugtoolbar/commit/98c611ade925e1a615373edcd6313222ea57d221\"\u003e\u003ccode\u003e98c611a\u003c/code\u003e\u003c/a\u003e Release version 0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/95b02b592036e4d74c1d837d0ef3bba06063aa38\"\u003e\u003ccode\u003e95b02b5\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/bd642464f28e053c52a09882665e5bd8af5132da\"\u003e\u003ccode\u003ebd64246\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5671a92e1737699dcce8d792ae0113c150c52a7d\"\u003e\u003ccode\u003e5671a92\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ad6323994f2ab3226c6056755f535cb1aea62e42\"\u003e\u003ccode\u003ead63239\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/23612561077884f355fc34651955757d29289dc6\"\u003e\u003ccode\u003e2361256\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/e7b8136dea5a746195ebd4e9982ec2be8fc9c617\"\u003e\u003ccode\u003ee7b8136\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ccf5ae22c6ebcd284fa4826bc21f570a624017c3\"\u003e\u003ccode\u003eccf5ae2\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into dependabot/github_actions/github-actions-5070efb06b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/4e98b183f3060d38028a0e2c47649553b23dc063\"\u003e\u003ccode\u003e4e98b18\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group in /requirements with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5b4f4a0fcd29ed152f8041a386d264a1cd04cc30\"\u003e\u003ccode\u003e5b4f4a0\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-mail` from 0.9.1 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-mail/releases\"\u003eflask-mail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0\u003c/h2\u003e\n\u003cp\u003eFlask-Mail is now part of the Pallets Community Ecosystem. Pallets is the open source organization that maintains Flask; Pallets-Eco enables community maintenance of related projects. If you are interested in helping maintain this project, please reach out on \u003ca href=\"https://discord.gg/pallets\"\u003ethe Pallets Discord server\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release mainly refreshes the project after its extended hiatus. It now uses the standard Pallets project layout, tools, and configurations. Documentation is now hosted at \u003ca href=\"https://flask-mail.readthedocs.io\"\u003ehttps://flask-mail.readthedocs.io\u003c/a\u003e. The library now exports static type annotations.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\"\u003ehttps://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/flask-mail/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/flask-mail/milestone/1?closed=1\u003c/a\u003e\nPyPI: \u003ca href=\"https://pypi.org/project/Flask-Mail/0.10.0/\"\u003ehttps://pypi.org/project/Flask-Mail/0.10.0/\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or \u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and \u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e and will not be \u003ccode\u003eNone\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/pallets-eco/flask-mail/blob/main/CHANGES.md\"\u003eflask-mail's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.10.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next\nversion.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and\n\u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e\nand will not be \u003ccode\u003eNone\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-eco/flask-mail/commit/848ea85f2bf2583d7f0ef58ed55ac1d18f67883a\"\u003e\u003ccode\u003e848ea85\u003c/code\u003e\u003c/a\u003e release version 0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/0ec1f6b59407f064ece6db351e2da86f4f9ea557\"\u003e\u003ccode\u003e0ec1f6b\u003c/code\u003e\u003c/a\u003e remove test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/846a67ecf442d908c45057d8c39e2a16150d4868\"\u003e\u003ccode\u003e846a67e\u003c/code\u003e\u003c/a\u003e add static type annotations (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/9075a7a453839a2d8918635ac517713375d26357\"\u003e\u003ccode\u003e9075a7a\u003c/code\u003e\u003c/a\u003e fix signal argument order (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/7b450bd11060bb2885b107c22593326cf488ebad\"\u003e\u003ccode\u003e7b450bd\u003c/code\u003e\u003c/a\u003e update \u003ccode\u003eis_bad_headers\u003c/code\u003e deprecation message (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/56914a8512cade43990ea0161560cef8b9bc7391\"\u003e\u003ccode\u003e56914a8\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003e__version__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/1932b747f8323c3225fa306f6f36e561face7368\"\u003e\u003ccode\u003e1932b74\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/46bddb7cd0f543c32d79ee449087664143927a61\"\u003e\u003ccode\u003e46bddb7\u003c/code\u003e\u003c/a\u003e Various minor doc updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/610faf7d5f7b1cf3f0706bd8ca1aec9bba9fa654\"\u003e\u003ccode\u003e610faf7\u003c/code\u003e\u003c/a\u003e Update docs to use myst-parser (and be written in .md) (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/bede1aca81ebf585cf9d8284e8881c94e8eb269b\"\u003e\u003ccode\u003ebede1ac\u003c/code\u003e\u003c/a\u003e notify 0.8 backward incompatible changes in ChangeLog (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/109\"\u003e#109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-mail/compare/0.9.1...0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-migrate` from 3.0.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/releases\"\u003eflask-migrate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.7\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.6\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.5\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.4\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.3\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 3.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\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/miguelgrinberg/Flask-Migrate/blob/main/CHANGES.md\"\u003eflask-migrate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlask-Migrate Change Log\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.1.0\u003c/strong\u003e - 2025-01-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept arguments such as \u003ccode\u003e--directory\u003c/code\u003e in environment variables \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/553\"\u003e#553\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/12a181ce0542659f10b4ce154a10cfd41fa1f501\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix minor typos in documentation \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/552\"\u003e#552\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/3b073a2c500303894c495d2e4fa0ef449b6a2833\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eKevin Kirsche\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.7\u003c/strong\u003e - 2024-03-11\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegression from \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e: check \u003ccode\u003eg.x_arg\u003c/code\u003e exists before accessing it \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/541\"\u003e#541\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7e8032c61e5c47f4e50b03dcf98c3b20dd5a8e55\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eSkye Im\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.6\u003c/strong\u003e - 2024-03-09\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003e-x\u003c/code\u003e options for all db commands \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/6f3f889c36030134f87dc1db327c2385d873a4d6\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--purge\u003c/code\u003e flag to the \u003ccode\u003estamp\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/540\"\u003e#540\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/af67bb093df5652c867b88880c5934bfc68313cc\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eJono N\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.5\u003c/strong\u003e - 2023-09-12\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompatibility fixes for Flask-SQLAlchemy \u0026gt;= 3.1 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/526\"\u003e#526\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/f562178bbe1912912f3cb6877cbae8b0899c74da\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eDavid Lord\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eprocess_revision_directives\u003c/code\u003e option to be configurable \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/523\"\u003e#523\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/821e37fcc4a5e339f197153cdbb4dd2316cbd44b\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ellc\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eStop testing Python 3.7, as Flask-SQLAlchemy 3.1 stopped supporting it (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/8d175193f00bf4e5578f0142d011093d8cd53d57\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.4\u003c/strong\u003e - 2023-02-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly obtain database URL with SQLAlchemy 2.0 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/505\"\u003e#505\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/c8cd02c5d3d43bbab462b863db5417b5d69228bb\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.3\u003c/strong\u003e - 2023-01-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove legacy \u003cstrong\u003efuture\u003c/strong\u003e import in Alembic templates \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/504\"\u003e#504\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a388cfe320254735f4ed65ac655caaf0cae8b28\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ePamela Fox\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 1.4 and 2.0 to the test matrix (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a725f2e3267f1c3bb4920cd3bff3a9ff1d7eb6e\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch to pytest as test runner (\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/cabotage/cabotage-app/pull/149","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabotage%2Fcabotage-app/issues/149","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/149/packages"}},{"old_version":"2.9.9","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-02-09T22:52:11.000Z","version_change":"2.9.9 → 2.9.11","issue":{"uuid":"3918528584","node_id":"PR_kwDORMh3vc7CmCKU","number":9,"state":"closed","title":"build(deps): bump psycopg2 from 2.9.9 to 2.9.11","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-09T23:57:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-09T22:52:11.000Z","updated_at":"2026-02-09T23:57:52.000Z","time_to_close":3931,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"psycopg2","old_version":"2.9.9","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [psycopg2](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.11.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.11\"\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=psycopg2\u0026package-manager=pip\u0026previous-version=2.9.9\u0026new-version=2.9.11)](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/AAAA477/carribean-geonode/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AAAA477%2Fcarribean-geonode/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"2.9.10","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-02-04T20:16:39.000Z","version_change":"2.9.10 → 2.9.11","issue":{"uuid":"3898247049","node_id":"PR_kwDOKO3IB87Bje1Z","number":69,"state":"closed","title":"requirements: bump the pip-minor-patch group with 50 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-18T14:32:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-04T20:16:39.000Z","updated_at":"2026-02-18T14:33:26.000Z","time_to_close":1188977,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"requirements: bump","group_name":"pip-minor-patch","update_count":50,"packages":[{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"incremental","old_version":"24.7.2","new_version":"24.11.0","repository_url":"https://github.com/twisted/incremental"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"markdown","old_version":"3.8","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"hvac","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hvac/hvac"},{"name":"mypy","old_version":"1.16.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"mypy-zope","old_version":"1.0.12","new_version":"1.0.14","repository_url":"https://github.com/Shoobx/mypy-zope"},{"name":"alembic","old_version":"1.18.1","new_version":"1.18.3","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"boto3","old_version":"1.38.36","new_version":"1.42.41","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.38.36","new_version":"1.42.41","repository_url":"https://github.com/boto/botocore"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"dill","old_version":"0.4.0","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"evalidate","old_version":"2.0.5","new_version":"2.1.3","repository_url":"https://github.com/yaroslaff/evalidate"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.3.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"lz4","old_version":"4.4.4","new_version":"4.4.5","repository_url":"https://github.com/python-lz4/python-lz4"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"brotli","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/google/brotli"},{"name":"markupsafe","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.6","new_version":"5.1.20","repository_url":"https://github.com/getmoto/moto"},{"name":"msgpack","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyopenssl","old_version":"25.1.0","new_version":"25.3.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.14.0","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"s3transfer","old_version":"0.13.0","new_version":"0.16.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sqlalchemy","old_version":"2.0.41","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"werkzeug","old_version":"3.1.4","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"zope-event","old_version":"6.0","new_version":"6.1","repository_url":"https://github.com/zopefoundation/zope.event"},{"name":"altgraph","old_version":"0.17.4","new_version":"0.17.5","repository_url":"https://github.com/ronaldoussoren/altgraph"},{"name":"pyinstaller","old_version":"6.14.1","new_version":"6.18.0","repository_url":"https://github.com/pyinstaller/pyinstaller"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pycairo","old_version":"1.28.0","new_version":"1.29.0","repository_url":"https://github.com/pygobject/pycairo"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"docutils","old_version":"0.21.2","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"pyenchant","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/pyenchant/pyenchant"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pg8000","old_version":"1.31.2","new_version":"1.31.5","repository_url":"https://github.com/tlocke/pg8000"},{"name":"scramp","old_version":"1.4.5","new_version":"1.4.8","repository_url":"https://github.com/tlocke/scramp"},{"name":"wheel","old_version":"0.45.1","new_version":"0.46.3","repository_url":"https://github.com/pypa/wheel"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-minor-patch group with 50 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [incremental](https://github.com/twisted/incremental) | `24.7.2` | `24.11.0` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.10.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.3` |\n| [hvac](https://github.com/hvac/hvac) | `2.3.0` | `2.4.0` |\n| [mypy](https://github.com/python/mypy) | `1.16.0` | `1.19.1` |\n| [mypy-zope](https://github.com/Shoobx/mypy-zope) | `1.0.12` | `1.0.14` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.1` | `1.18.3` |\n| [boto3](https://github.com/boto/boto3) | `1.38.36` | `1.42.41` |\n| [botocore](https://github.com/boto/botocore) | `1.38.36` | `1.42.41` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [dill](https://github.com/uqfoundation/dill) | `0.4.0` | `0.4.1` |\n| [evalidate](https://github.com/yaroslaff/evalidate) | `2.0.5` | `2.1.3` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.3.1` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [lz4](https://github.com/python-lz4/python-lz4) | `4.4.4` | `4.4.5` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [brotli](https://github.com/google/brotli) | `1.1.0` | `1.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `3.0.2` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.6` | `5.1.20` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.1` | `1.1.2` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.1.0` | `25.3.0` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.0` | `0.15.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.13.0` | `0.16.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.41` | `2.0.46` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.3` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.4` | `3.1.5` |\n| [zope-event](https://github.com/zopefoundation/zope.event) | `6.0` | `6.1` |\n| [altgraph](https://github.com/ronaldoussoren/altgraph) | `0.17.4` | `0.17.5` |\n| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.14.1` | `6.18.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pycairo](https://github.com/pygobject/pycairo) | `1.28.0` | `1.29.0` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.21.2` | `0.22.4` |\n| [pyenchant](https://github.com/pyenchant/pyenchant) | `3.2.2` | `3.3.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pg8000](https://github.com/tlocke/pg8000) | `1.31.2` | `1.31.5` |\n| [scramp](https://github.com/tlocke/scramp) | `1.4.5` | `1.4.8` |\n| [wheel](https://github.com/pypa/wheel) | `0.45.1` | `0.46.3` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.4.0` |\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.10 to 3.11\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.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\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/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `incremental` from 24.7.2 to 24.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/twisted/incremental/blob/trunk/NEWS.rst\"\u003eincremental's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eIncremental 24.11.0 (2025-11-27)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncremental now provides a CLI script, \u003ccode\u003eincremental\u003c/code\u003e, allowing you to run it with \u003ccode\u003epipx run incremental\u003c/code\u003e.\nThe \u003ccode\u003eincremental update\u003c/code\u003e subcommand offers the same functionality as \u003ccode\u003epython -m incremental.update\u003c/code\u003e. (\u003ccode\u003e[#99](https://github.com/twisted/incremental/issues/99) \u0026lt;https://github.com/twisted/incremental/issues/99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eIncremental now depends on packaging instead of setuptools at runtime (\u003ccode\u003e[#141](https://github.com/twisted/incremental/issues/141) \u0026lt;https://github.com/twisted/incremental/issues/141\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 and 3.14 to the test matrix. (\u003ccode\u003e[#179](https://github.com/twisted/incremental/issues/179) \u0026lt;https://github.com/twisted/incremental/issues/179\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild Incremental itself with Hatchling, working around failures with certain versions of setuptools (\u003ccode\u003e[#122](https://github.com/twisted/incremental/issues/122) \u0026lt;https://github.com/twisted/incremental/issues/122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncremental's documentation now highlights its primary features: CalVer and indeterminate versions (NEXT). (\u003ccode\u003e[#2](https://github.com/twisted/incremental/issues/2) \u0026lt;https://github.com/twisted/incremental/issues/2\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIncremental's CLI no longer depends on Click, so you no longer need to install \u003ccode\u003eincremental[scripts]\u003c/code\u003e for it to function.\nThe \u003ccode\u003escripts\u003c/code\u003e extra is deprecated. (\u003ccode\u003e[#99](https://github.com/twisted/incremental/issues/99) \u0026lt;https://github.com/twisted/incremental/issues/99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8, which has been end-of-life since October 2024. (\u003ccode\u003e[#179](https://github.com/twisted/incremental/issues/179) \u0026lt;https://github.com/twisted/incremental/issues/179\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#105](https://github.com/twisted/incremental/issues/105) \u0026lt;https://github.com/twisted/incremental/issues/105\u0026gt;\u003c/code\u003e\u003cstrong\u003e, \u003ccode\u003e[#116](https://github.com/twisted/incremental/issues/116) \u0026lt;https://github.com/twisted/incremental/issues/116\u0026gt;\u003c/code\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/2e15ebbbd5bdddb122179074e7d088dd0f5bf198\"\u003e\u003ccode\u003e2e15ebb\u003c/code\u003e\u003c/a\u003e Release Incremental 25.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/28034621f305d108c8992ef67ca1e04bfff18741\"\u003e\u003ccode\u003e2803462\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/184\"\u003e#184\u003c/a\u003e from twisted/dependabot/github_actions/actions/checko...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/ab9ac5cc1d8abefa00d9526100063f25c3fa770a\"\u003e\u003ccode\u003eab9ac5c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/fa2a4c70ac385ca5a8d7471313cba668356e3e77\"\u003e\u003ccode\u003efa2a4c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/183\"\u003e#183\u003c/a\u003e from twisted/dependabot/pip/packaging-9f19c49aaa\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/e9a45a25824b6d37096e5cdad4a78cd2fccd21b6\"\u003e\u003ccode\u003ee9a45a2\u003c/code\u003e\u003c/a\u003e Bump build in the packaging group across 1 directory\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/f72107413d4d7af3fad1cc5315ec150fd94f7ede\"\u003e\u003ccode\u003ef721074\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/180\"\u003e#180\u003c/a\u003e from twisted/dependabot/pip/uv-0.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/6678e1cd092f207915f57f2a18f71ed1cda76037\"\u003e\u003ccode\u003e6678e1c\u003c/code\u003e\u003c/a\u003e Bump uv from 0.9.5 to 0.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/b98b8c58c98a67c038dfc1c8c993d2dd1baa8bcf\"\u003e\u003ccode\u003eb98b8c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/twisted/incremental/issues/179\"\u003e#179\u003c/a\u003e from twisted/new-pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/d9ae87ec397cd465b08ac9b85877acbf8ca6a8d4\"\u003e\u003ccode\u003ed9ae87e\u003c/code\u003e\u003c/a\u003e Add newsfragments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twisted/incremental/commit/61c2784efe858da52d31609b12cdb831aaabb75f\"\u003e\u003ccode\u003e61c2784\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/twisted/incremental/compare/incremental-24.7.2...incremental-24.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.2\u003c/h1\u003e\n\u003cp\u003e2026-01-28\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2705_: [Linux]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003epidfd_open()\u003c/code\u003e + \u003ccode\u003epoll()\u003c/code\u003e for\nwaiting, resulting in no busy loop and faster response times. Requires\nLinux \u0026gt;= 5.3 and Python \u0026gt;= 3.9. Falls back to traditional polling if\nunavailable.\u003c/li\u003e\n\u003cli\u003e2705_: [macOS], [BSD]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003ekqueue()\u003c/code\u003e for waiting,\nresulting in no busy loop and faster response times.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2701_, [macOS]: fix compilation error on macOS \u0026lt; 10.7.  (patch by Sergey\nFedorov)\u003c/li\u003e\n\u003cli\u003e2707_, [macOS]: fix potential memory leaks in error paths of\n\u003ccode\u003eProcess.memory_full_info()\u003c/code\u003e and \u003ccode\u003eProcess.threads()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e2708_, [macOS]: Process.cmdline()\u003ccode\u003e_ and \u003c/code\u003eProcess.environ()\u003ccode\u003e_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise \u003c/code\u003eAccessDenied`_ instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` from 4.14.0 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.15.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.1\u003c/h2\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\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/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\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/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4\"\u003e\u003ccode\u003e9810405\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e@disjoint_base\u003c/code\u003e (PEP 800) (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/634\"\u003e#634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03\"\u003e\u003ccode\u003e7ee9e05\u003c/code\u003e\u003c/a\u003e Backport type_params fix from CPython (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/646\"\u003e#646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98\"\u003e\u003ccode\u003e1e8eb9c\u003c/code\u003e\u003c/a\u003e Do not refer to PEP 705 as being experimental (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.14.0...4.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.8 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.10.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.9.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/22e89c1fc346f72218a10e392a0c3b4731912522\"\u003e\u003ccode\u003e22e89c1\u003c/code\u003e\u003c/a\u003e Bump version to 3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/c138aea5139a6aceae05bb957e866d9ce7577b94\"\u003e\u003ccode\u003ec138aea\u003c/code\u003e\u003c/a\u003e + PY314 - PY39\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.8...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.13.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.3 — 2026-02-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in some situations, third-party code was measured when it shouldn't have\nbeen, slowing down test execution. This happened with layered virtual\nenvironments such as uv sometimes makes. The problem is fixed, closing \u003ccode\u003eissue 2082\u003c/code\u003e_. Now any directory on sys.path that is inside a virtualenv is\nconsidered third-party code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2082: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2082\"\u003ecoveragepy/coveragepy#2082\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.2 — 2026-01-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: when Python is installed via symlinks, for example with Homebrew, the\nstandard library files could be incorrectly included in coverage reports.\nThis is now fixed, closing \u003ccode\u003eissue 2115\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: if a data file is created with no read permissions, the combine step\nwould fail completely. Now a warning is issued and the file is skipped.\nCloses \u003ccode\u003eissue 2117\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2115: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2115\"\u003ecoveragepy/coveragepy#2115\u003c/a\u003e\n.. _issue 2117: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2117\"\u003ecoveragepy/coveragepy#2117\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\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/coveragepy/coveragepy/commit/6bf962f476b2f4cf344e9aa981dbbc8138cdfb69\"\u003e\u003ccode\u003e6bf962f\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/9f2e54c31bfe3af00d1d276a4e76014b896c13ad\"\u003e\u003ccode\u003e9f2e54c\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/6208c42e7ee6047d6d21b3c5c515f56fc10e7b2d\"\u003e\u003ccode\u003e6208c42\u003c/code\u003e\u003c/a\u003e fix: find third-party packages in more locations. \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2082\"\u003e#2082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/edb50169c00ad9a90b2104a85adc57965dc23c2e\"\u003e\u003ccode\u003eedb5016\u003c/code\u003e\u003c/a\u003e refactor: make dataclass imports uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b05826a0f6ab909fe136468647a45e74926cd570\"\u003e\u003ccode\u003eb05826a\u003c/code\u003e\u003c/a\u003e chore: bump actions/setup-python in the action-dependencies group (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b519e17acf1c311c0868e7e571da47b43dd1f6f7\"\u003e\u003ccode\u003eb519e17\u003c/code\u003e\u003c/a\u003e refactor: no need for ox_profile connection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/775f1cb19d232e6849b5bb662431390cc7d9a0b5\"\u003e\u003ccode\u003e775f1cb\u003c/code\u003e\u003c/a\u003e build: remove pudb, I can install it if I need it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/0ccb1fe603352cfdc2c4cfbe062a84015d8f3454\"\u003e\u003ccode\u003e0ccb1fe\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9e2a0e8e740915c525256e84e2a628849374c5c\"\u003e\u003ccode\u003ee9e2a0e\u003c/code\u003e\u003c/a\u003e chore: bump actions/checkout in the action-dependencies group (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2122\"\u003e#2122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/77e1a04e898ed8851eeb17f761b4fecacf3de01c\"\u003e\u003ccode\u003e77e1a04\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hvac` from 2.3.0 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hvac/hvac/releases\"\u003ehvac's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.0\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd audience param to kubernetes role creation (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1224\"\u003eGH-1224\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📚 Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix AppRole.login docstring (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1182\"\u003eGH-1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Miscellaneous\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a typo in read_secret_version warning message (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1219\"\u003eGH-1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePin consul version in CI (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1210\"\u003eGH-1210\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/EmFl\"\u003e\u003ccode\u003e@​EmFl\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/briantist\"\u003e\u003ccode\u003e@​briantist\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/deamen\"\u003e\u003ccode\u003e@​deamen\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot], \u003ca href=\"https://github.com/evan-cohen\"\u003e\u003ccode\u003e@​evan-cohen\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/roshan-baladhanvi\"\u003e\u003ccode\u003e@​roshan-baladhanvi\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e for their lovely contributions.\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/hvac/hvac/blob/main/CHANGELOG.md\"\u003ehvac's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd audience param to kubernetes role creation (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1224\"\u003eGH-1224\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📚 Documentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edocs: fix AppRole.login docstring (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1182\"\u003eGH-1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🧰 Miscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a typo in read_secret_version warning message (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1219\"\u003eGH-1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePin consul version in CI (\u003ca href=\"https://redirect.github.com/hvac/hvac/pull/1210\"\u003eGH-1210\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/hvac/hvac/commit/2f1a58f754526b6baeee43d8763917d308ca2997\"\u003e\u003ccode\u003e2f1a58f\u003c/code\u003e\u003c/a\u003e fix pypi release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/fd769362047d4c05f3260b5b508e2b92db043d27\"\u003e\u003ccode\u003efd76936\u003c/code\u003e\u003c/a\u003e use ls instead (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1233\"\u003e#1233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/7ae23dfe283f43ca6b355080494e6110cc46da8d\"\u003e\u003ccode\u003e7ae23df\u003c/code\u003e\u003c/a\u003e remove tree command from release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/bba486c05642ed04fb89abb3543c7641333346f1\"\u003e\u003ccode\u003ebba486c\u003c/code\u003e\u003c/a\u003e Release/v2.4.0 (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1232\"\u003e#1232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/531b9df740819d8961d1eab3623ab642c6188524\"\u003e\u003ccode\u003e531b9df\u003c/code\u003e\u003c/a\u003e coverage: skip on schedule, try slim runner (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1231\"\u003e#1231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/b8167a7545bbf541200f6acef949b28d888faca2\"\u003e\u003ccode\u003eb8167a7\u003c/code\u003e\u003c/a\u003e add audience param to kubernetes role creation (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/590537d15b389946eb0d34081f2bb3275f33ece6\"\u003e\u003ccode\u003e590537d\u003c/code\u003e\u003c/a\u003e Fix tests and CI - certs, schedule, etc. (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1230\"\u003e#1230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/4c0b650c2adbf4f8af72372e0b33ea60259c7397\"\u003e\u003ccode\u003e4c0b650\u003c/code\u003e\u003c/a\u003e fix: Fixing a typo in read_secret_version (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/ea3a6520cc08f69470494cce0ac26a2ab025f91d\"\u003e\u003ccode\u003eea3a652\u003c/code\u003e\u003c/a\u003e Pin consul version in CI (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1210\"\u003e#1210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hvac/hvac/commit/2d2c80e296f2983c00486ee2a2ea000a3cc15604\"\u003e\u003ccode\u003e2d2c80e\u003c/code\u003e\u003c/a\u003e docs: fix AppRole.login docstring (\u003ca href=\"https://redirect.github.com/hvac/hvac/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hvac/hvac/compare/v2.3.0...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy-zope` from 1.0.12 to 1.0.14\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Shoobx/mypy-zope/blob/master/CHANGELOG.md\"\u003emypy-zope's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.14 (2025-12-01)\u003c/h2\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eSupport mypy-1.19\u003c/li\u003e\n\u003cli\u003eSupport mypy-1.18\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.13 (2025-07-17)\u003c/h2\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python-3.8 (follow mypy).\u003c/li\u003e\n\u003cli\u003eSupport mypy-1.17\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/Shoobx/mypy-zope/commit/38d22f3f4f6fc1b85c9a0d3b64577749f682a6d2\"\u003e\u003ccode\u003e38d22f3\u003c/code\u003e\u003c/a\u003e Preparing release 1.0.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/76762ec861b1b3cddc471f1e8949902f3f3264be\"\u003e\u003ccode\u003e76762ec\u003c/code\u003e\u003c/a\u003e Maintain changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/4971d98ab80db3362bd5864a92d385e8c5a43aec\"\u003e\u003ccode\u003e4971d98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Shoobx/mypy-zope/issues/134\"\u003e#134\u003c/a\u003e from Shoobx/dependabot/pip/mypy-gte-1.0.0-and-lt-1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/47af89d2c709f9e478ddbd5590994eba0829fb34\"\u003e\u003ccode\u003e47af89d\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.19.0,\u0026gt;=1.0.0 to \u0026gt;=1.0.0,\u0026lt;1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/0c596ff804a1ece6a8d33c0abf1587a766e047c8\"\u003e\u003ccode\u003e0c596ff\u003c/code\u003e\u003c/a\u003e Maintain changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/dcaa27841defa865c474f585e8bb799a8242399f\"\u003e\u003ccode\u003edcaa278\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Shoobx/mypy-zope/issues/132\"\u003e#132\u003c/a\u003e from Shoobx/dependabot/pip/mypy-gte-1.0.0-and-lt-1.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/8f7b6778df6e3dde48c082ec07182e50b9938c76\"\u003e\u003ccode\u003e8f7b677\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.18.0,\u0026gt;=1.0.0 to \u0026gt;=1.0.0,\u0026lt;1.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/91b275b364cc90403b2a160695f32ca27bc06bb9\"\u003e\u003ccode\u003e91b275b\u003c/code\u003e\u003c/a\u003e Back to development: 1.0.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/8a3165b79643927ae8b03902baaf1651a2f5ca9c\"\u003e\u003ccode\u003e8a3165b\u003c/code\u003e\u003c/a\u003e Preparing release 1.0.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Shoobx/mypy-zope/commit/421b21ff753291f3b62b4b3deef9bc4cb91b199e\"\u003e\u003ccode\u003e421b21f\u003c/code\u003e\u003c/a\u003e Maintain changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Shoobx/mypy-zope/compare/1.0.12...1.0.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.1 to 1.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\nthat are not reflected, allowing the autogenerate comparison to proceed\nwithout error while maintaining the performance improvement from\n\u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e. When multiple foreign keys reference different columns in\nthe same filtered table, the placeholder table accumulates all necessary\ncolumns. These placeholder tables may be visible when using the\n\u003ccode\u003eEnvironmentContext.configure.include_object\u003c/code\u003e callable to\ninspect \u003ccode\u003eForeignKeyConstraint\u003c/code\u003e objects; they will have the name,\nschema and basic column information for the relevant columns present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1787\"\u003e#1787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [general]\u003c/strong\u003e Fixed regression caused by \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1669\"\u003e#1669\u003c/a\u003e which requires SQLAlchemy objects\nto support generic type subscripting; for the older SQLAlchemy 1.4 series,\nthis requires version 1.4.23.  Changed the minimum requirements to require\nversion 1.4.23 rather than 1.4.0.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1788\"\u003e#1788\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.2\u003c/h1\u003e\n\u003cp\u003eReleased: January 28, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[usecase] [operations]\u003c/strong\u003e The \u003ccode\u003eprimary_key\u003c/code\u003e parameter on \u003ccode\u003eColumn\u003c/code\u003e is now honored when\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e is used, and will emit the \u0026quot;PRIMARY KEY\u0026quot;\nkeyword inline within the ADD COLUMN directive.  This is strictly a syntax\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/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.38.36 to 1.42.41\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/60637f8fc25c9411abb7f430eb3c2466437d1704\"\u003e\u003ccode\u003e60637f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.41'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/662d4a34c5c6dea278de160e694e1e8055c590bf\"\u003e\u003ccode\u003e662d4a3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5dcc61b903fef7201710dab6ac14a8d3b0dbbc3d\"\u003e\u003ccode\u003e5dcc61b\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/15a78179d4ba9127aa5903edd9fe6265a45dc25f\"\u003e\u003ccode\u003e15a7817\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/6bea7925951176592700c630baaa3a35eaec1d6b\"\u003e\u003ccode\u003e6bea792\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3f92d07e04146184a1769c89616ccb8d304e9fd3\"\u003e\u003ccode\u003e3f92d07\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/0069675fdee79041187d17d3d96cbe47daa992c9\"\u003e\u003ccode\u003e0069675\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/66d036066f907ffebf4f49c87cde3009ec270b87\"\u003e\u003ccode\u003e66d0360\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.0 to 4.32.1 (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4715\"\u003e#4715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/fd93dbb656cec791e048992bc24d78850e672c59\"\u003e\u003ccode\u003efd93dbb\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.39'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/18836475f987e84d196a6ddd485ae1a3d876dd32\"\u003e\u003ccode\u003e1883647\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.39' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.38.36...1.42.41\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.38.36 to 1.42.41\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/104e8ef284991c77c516d1da7f9cf9917d6e63f2\"\u003e\u003ccode\u003e104e8ef\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.41'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7436ba994fe0e5cc69f302be8e5efd4c8c9859ce\"\u003e\u003ccode\u003e7436ba9\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/1a0813ab227c0a0275b3b332b051a737ecec68fc\"\u003e\u003ccode\u003e1a0813a\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/12d57f623893fafc71889af397fd3df30b321318\"\u003e\u003ccode\u003e12d57f6\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/a7e48591d05e948cb7f126d7cc5a6a7ce9313859\"\u003e\u003ccode\u003ea7e4859\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.40' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/fa102f5401b0b251d5ba0431a69d1c18d2165c21\"\u003e\u003ccode\u003efa102f5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/84898c56e81e251bd97373233550cdf3c83593b1\"\u003e\u003ccode\u003e84898c5\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/14b6a17a426ad0f8e0abe2540dfd43a736b1c2eb\"\u003e\u003ccode\u003e14b6a17\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/bb59587528ecc5193b8af2ef6ead9503364bbe7a\"\u003e\u003ccode\u003ebb59587\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.0 to 4.32.0 (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3625\"\u003e#3625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/26a688fcf87081fb56bd950f8feaef8d3a1abd06\"\u003e\u003ccode\u003e26a688f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.39'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.38.36...1.42.41\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dill` from 0.4.0 to 0.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a9d4d39c411296fb3608c4ffd142134559942d21\"\u003e\u003ccode\u003ea9d4d39\u003c/code\u003e\u003c/a\u003e tag: 0.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/54370bde90434f98100c646d4b78575b3385840f\"\u003e\u003ccode\u003e54370bd\u003c/code\u003e\u003c/a\u003e cleanup outdated docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/bae7c217fea05667e1e20ea29239878f9bab6930\"\u003e\u003ccode\u003ebae7c21\u003c/code\u003e\u003c/a\u003e fix pypy311 registered, update travis ci (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/7daa95d0a5caaeeb0bf8705ec339215ff90c1425\"\u003e\u003ccode\u003e7daa95d\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.0 to 2.6.3 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/739\"\u003e#739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/5fbd3a77aa53205ea0b19dc343e69f5d8701e09e\"\u003e\u003ccode\u003e5fbd3a7\u003c/code\u003e\u003c/a\u003e sync with rtfd 15.10.0 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/740\"\u003e#740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/fdb4b720e34d539589180ccbb68ac6cd04d8c927\"\u003e\u003ccode\u003efdb4b72\u003c/code\u003e\u003c/a\u003e update copyright for 2026, urllib3 to 2.6.0 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/e8c4221ffe177c48e50a569c8a72e669f7bd1ac1\"\u003e\u003ccode\u003ee8c4221\u003c/code\u003e\u003c/a\u003e avoid numpy segfault for 3.15.0a3 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/d948ecd748772f2812361982ec1496da0cd47b53\"\u003e\u003ccode\u003ed948ecd\u003c/code\u003e\u003c/a\u003e ensure valid class qualname in getsource (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a843f9013fab9a2cccedf1cec32e39aad1a81cad\"\u003e\u003ccode\u003ea843f90\u003c/code\u003e\u003c/a\u003e sync with rtd 15.4.1 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/08f613da299c61b7a3c6afc95c0d7a71ab63857b\"\u003e\u003ccode\u003e08f613d\u003c/code\u003e\u003c/a\u003e dict and weakref attribute are singletons in 3.15 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/uqfoundation/dill/compare/0.4.0...0.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `evalidate` from 2.0.5 to 2.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaroslaff/evalidate/releases\"\u003eevalidate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.3 Is/IsNot\u003c/h2\u003e\n\u003cp\u003e2.1.3 \u003ccode\u003eIs\u003c/code\u003e and \u003ccode\u003eIsNot\u003c/code\u003e nodes are whitelisted by default\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eExpr.eval() accepts both local and global ctx (since 2.1.0)\u003c/p\u003e\n\u003cp\u003eTwo CLI utilities:\njg (json grep, fast small alternative to jq) added\ngenfakeproducts - simple utility to generate JSON lists for tests\u003c/p\u003e\n\u003cp\u003ein 2.1.1 - removed wrong dependency on \u0026quot;requests\u0026quot;\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/yaroslaff/evalidate/commit/411745abd02910f646f0fc215d235ae48fd027fc\"\u003e\u003ccode\u003e411745a\u003c/code\u003e\u003c/a\u003e Is/IsNot whitelisted\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/bc2606c7be297422be3a136d79b68cb2679cc4d1\"\u003e\u003ccode\u003ebc2606c\u003c/code\u003e\u003c/a\u003e [generate] extra\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/77bf1af5385a1dd436f0fc6ea6589fda1a5a2ad4\"\u003e\u003ccode\u003e77bf1af\u003c/code\u003e\u003c/a\u003e removed wrong requests dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/f50a2954124cffa87f69c61e738d75b3fa3a0cec\"\u003e\u003ccode\u003ef50a295\u003c/code\u003e\u003c/a\u003e dependency added: requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/a264b9d23cf1d17813bb5cc0c61a35535eff3206\"\u003e\u003ccode\u003ea264b9d\u003c/code\u003e\u003c/a\u003e README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaroslaff/evalidate/commit/52c0fe8cf097d63c5c288d3e1067ce047923e876\"\u003e\u003ccode\u003e52c0fe8\u003c/code\u003e\u003c/a\u003e Expr accepts ctx_globals/ctx_locals. jg and genfakeproducts CLI tools.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaroslaff/evalidate/compare/v2.0.5...v2.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.2.3 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.1 (2026-01-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePublish Windows ARM binary wheels, where available.\u003c/li\u003e\n\u003cli\u003eFix compilation for 3.14t on Windows.\u003c/li\u003e\n\u003cli\u003ePublish Windows 3.14t binary wheels for Intel...\n\n_Description has been truncated_","html_url":"https://github.com/tdesveaux/buildbot/pull/69","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tdesveaux%2Fbuildbot/issues/69","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/69/packages"}},{"old_version":"2.9.10","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-02-01T03:14:31.000Z","version_change":"2.9.10 → 2.9.11","issue":{"uuid":"3880983704","node_id":"PR_kwDOI9fKOs7AqVmc","number":42,"state":"closed","title":"build(deps): Bump the all-django-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T03:13:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T03:14:31.000Z","updated_at":"2026-03-01T03:13:51.000Z","time_to_close":2419158,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Bump","group_name":"all-django-dependencies","update_count":17,"packages":[{"name":"django","old_version":"5.1.8","new_version":"5.2.10","repository_url":"https://github.com/django/django"},{"name":"pillow","old_version":"11.2.1","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"django-tailwind","old_version":"4.0.1","new_version":"4.4.2","repository_url":"https://github.com/timonweb/django-tailwind"},{"name":"django-browser-reload","old_version":"1.18.0","new_version":"1.21.0","repository_url":"https://github.com/adamchainz/django-browser-reload"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"django-admin-interface","old_version":"0.30.0","new_version":"0.32.0","repository_url":"https://github.com/fabiocaccamo/django-admin-interface"},{"name":"django-multiselectfield","old_version":"0.1.13","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-debug-toolbar","old_version":"5.1.0","new_version":"6.2.0","repository_url":"https://github.com/django-commons/django-debug-toolbar"},{"name":"django-import-export","old_version":"4.3.7","new_version":"4.4.0","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.31.0","new_version":"0.33.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"django-simple-history","old_version":"3.8.0","new_version":"3.11.0","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"djhtml","old_version":"3.0.7","new_version":"3.0.10","repository_url":"https://github.com/rtts/djhtml"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pylint-django","old_version":"2.6.1","new_version":"2.7.0","repository_url":"https://github.com/pylint-dev/pylint-django"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-django-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.8` | `5.2.10` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.1.0` |\n| [django-tailwind](https://github.com/timonweb/django-tailwind) | `4.0.1` | `4.4.2` |\n| [django-browser-reload](https://github.com/adamchainz/django-browser-reload) | `1.18.0` | `1.21.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.2.1` |\n| [django-admin-interface](https://github.com/fabiocaccamo/django-admin-interface) | `0.30.0` | `0.32.0` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.13` | `1.0.1` |\n| [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) | `5.1.0` | `6.2.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.3.7` | `4.4.0` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.31.0` | `0.33.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.8.0` | `3.11.0` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [djhtml](https://github.com/rtts/djhtml) | `3.0.7` | `3.0.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pylint-django](https://github.com/pylint-dev/pylint-django) | `2.6.1` | `2.7.0` |\n\n\nUpdates `django` from 5.1.8 to 5.2.10\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8a0005cea04c3df104ca4d3e04c9e7664f2bffc7\"\u003e\u003ccode\u003e8a0005c\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.10 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e20d1c2e5574fca89c534c065c91a4df264538f2\"\u003e\u003ccode\u003ee20d1c2\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2ca2afdffdc7a33344f3189965b6ebc92196dc10\"\u003e\u003ccode\u003e2ca2afd\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/33647\"\u003e#33647\u003c/a\u003e -- Fixed silent data truncation in bulk_create on Postgres.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8346657aaff7da999dca32574e6595f8c9543a0c\"\u003e\u003ccode\u003e8346657\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36376\"\u003e#36376\u003c/a\u003e -- Fixed --no-color for command help in Python 3.14+.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9cc231e8243091519f5d627cd02ee40bbb853ced\"\u003e\u003ccode\u003e9cc231e\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/27890\"\u003e#27890\u003c/a\u003e -- Avoided overwriting TMPDIR in runtests.py under forkse...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca0f62213911a77dd4a62e843db7e420cc98b78\"\u003e\u003ccode\u003e5ca0f62\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36499\"\u003e#36499\u003c/a\u003e -- Adjusted test_strip_tags following Python behavior cha...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/322b717af5d0e7a13da48aa6a7fd21f52e78896e\"\u003e\u003ccode\u003e322b717\u003c/code\u003e\u003c/a\u003e [5.2.x] Added CVE-2025-13372 and CVE-2025-64460 to security archive.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/27c508acf46d20c0737205fdf47d9e2fa29077fb\"\u003e\u003ccode\u003e27c508a\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes for 5.2.10.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3a8f7a8667c943857bf6ac4ed3cb611c8956c51\"\u003e\u003ccode\u003ea3a8f7a\u003c/code\u003e\u003c/a\u003e [5.2.x] Post-release version bump.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c14b756185c88f7f2eb745ff061f3c221fea9de7\"\u003e\u003ccode\u003ec14b756\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.9 release.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.8...5.2.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.2.1 to 12.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eResourceWarning\u003c/code\u003es in \u003ccode\u003eselftest.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9332\"\u003e#9332\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix testing good P mode BMP images \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9319\"\u003e#9319\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest Python 3.15 pre-release \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9331\"\u003e#9331\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest ImageFont.ImageFont, in case freetype2 is not supported \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9287\"\u003e#9287\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Fedora 43 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9290\"\u003e#9290\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove Fedora 41 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9260\"\u003e#9260\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eType hints\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ImageFile context manager \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9367\"\u003e#9367\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAssert fp is not None \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8617\"\u003e#8617\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8dee8dd5ba4e592409db1a7fc11a61a51ba30f04\"\u003e\u003ccode\u003e8dee8dd\u003c/code\u003e\u003c/a\u003e Add ImageFile context manager (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9367\"\u003e#9367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b2d9bc3c766a9743d23a296a503ea2712cdc6745\"\u003e\u003ccode\u003eb2d9bc3\u003c/code\u003e\u003c/a\u003e Support saving APNG float durations (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9365\"\u003e#9365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/f130c10a9c07bc4a4fe793dc3dabb3fe8bd8a1bd\"\u003e\u003ccode\u003ef130c10\u003c/code\u003e\u003c/a\u003e Allow 1 mode images in MorphOp (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.2.1...12.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-tailwind` from 4.0.1 to 4.4.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/timonweb/django-tailwind/blob/master/CHANGELOG.md\"\u003edjango-tailwind's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.4.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue with CSS path configuration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes an issue when \u003ccode\u003eraw_input\u003c/code\u003e is used instead of \u003ccode\u003einput\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStandalone Tailwind CSS binary support via \u003ca href=\"https://github.com/timonweb/pytailwindcss\"\u003epytailwindcss\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_USE_STANDALONE_BINARY\u003c/code\u003e setting to force standalone binary mode;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTAILWIND_STANDALONE_BINARY_VERSION\u003c/code\u003e setting to control standalone binary version (default: \u003ccode\u003ev4.1.16\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eAutomatic detection of standalone vs npm-based installations (checks for \u003ccode\u003epackage.json\u003c/code\u003e presence);\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eapp_template_v4_standalone/\u003c/code\u003e cookiecutter template for standalone binary apps;\u003c/li\u003e\n\u003cli\u003eUpdates documentation;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNode.js\u003c/code\u003e is now optional when using standalone binary mode;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaces Poetry with UV for dependency management;\u003c/li\u003e\n\u003cli\u003eFixes \u003ccode\u003eextract_host_and_port\u003c/code\u003e to support standalone port numbers (e.g., \u003ccode\u003epython manage.py runserver 55555\u003c/code\u003e);\u003c/li\u003e\n\u003cli\u003eUpdates tox configuration to use \u003ccode\u003edev\u003c/code\u003e dependency group;\u003c/li\u003e\n\u003cli\u003eRemoves Docker instructions from documentation;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003emanage.py tailwind plugin_install\u003c/code\u003e command to manage Tailwind CSS plugins;\u003c/li\u003e\n\u003cli\u003eAdds optional daisyUI support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds new \u003ccode\u003edev\u003c/code\u003e command that starts Django development server and Tailwind watcher simultaneously;\u003c/li\u003e\n\u003cli\u003eAutomatically installs Honcho if not available when using \u003ccode\u003edev\u003c/code\u003e command;\u003c/li\u003e\n\u003cli\u003eCreates \u003ccode\u003eProcfile.tailwind\u003c/code\u003e for customizable process management;\u003c/li\u003e\n\u003cli\u003eUpdates documentation with \u003ccode\u003edev\u003c/code\u003e command usage;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Tailwind CSS v4+;\u003c/li\u003e\n\u003cli\u003eSets Tailwind CSS v4+ as the default version, with the option to use v3.x via \u003ccode\u003e--tailwind-version 3\u003c/code\u003e flag;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBrings Python 3.10 support back;\u003c/li\u003e\n\u003cli\u003eAdds Python 3.13 support;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds \u003ccode\u003e--no-package-lock\u003c/code\u003e option to \u003ccode\u003epython manage.py tailwind install\u003c/code\u003e command to optionally skip creating\n\u003ccode\u003epackage-lock.json\u003c/code\u003e file;\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/timonweb/django-tailwind/commit/dfb5a0004cc06ba9106fa0e15f479dabaa8a0f29\"\u003e\u003ccode\u003edfb5a00\u003c/code\u003e\u003c/a\u003e Releases 4.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/216c9e9b65737711748a6085071b040c9684c137\"\u003e\u003ccode\u003e216c9e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/244\"\u003e#244\u003c/a\u003e from synthghost/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/2b5a013b2310b9e101df93a481512e721e868797\"\u003e\u003ccode\u003e2b5a013\u003c/code\u003e\u003c/a\u003e Fix settings-based CSS path configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/bfd4250f812a4bb286a29ce1a0dd5e758709201e\"\u003e\u003ccode\u003ebfd4250\u003c/code\u003e\u003c/a\u003e Add Star History section to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4c8ef987284a9dc3bd837d980740efabb4088287\"\u003e\u003ccode\u003e4c8ef98\u003c/code\u003e\u003c/a\u003e Delete manage.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4b0e42826fbeeb8a2a9df24f8ec911d61fdd7003\"\u003e\u003ccode\u003e4b0e428\u003c/code\u003e\u003c/a\u003e Releases 4.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/46fb9a99f278582b4c9f4a8abb027c442e5e26df\"\u003e\u003ccode\u003e46fb9a9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/timonweb/django-tailwind/issues/241\"\u003e#241\u003c/a\u003e from evangeloskp/fix-distlib-import-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/34150e8de77ed499c98c0352e15030691b2bf623\"\u003e\u003ccode\u003e34150e8\u003c/code\u003e\u003c/a\u003e Fix ImportError by replacing distlib.compat.raw_input with built-in input()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/91c509a11d10f35997fcc2bce8b9241577831f68\"\u003e\u003ccode\u003e91c509a\u003c/code\u003e\u003c/a\u003e Update CI badge in README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/timonweb/django-tailwind/commit/4ac8150297c0b655f368f98faf9be8ec619b50f0\"\u003e\u003ccode\u003e4ac8150\u003c/code\u003e\u003c/a\u003e Releases 4.4.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/timonweb/django-tailwind/compare/4.0.1...4.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-browser-reload` from 1.18.0 to 1.21.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamchainz/django-browser-reload/blob/main/CHANGELOG.rst\"\u003edjango-browser-reload's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.21.0 (2025-09-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Content Security Policy (CSP) nonce support to the listener script tag, in both the middleware and the Jinja template tag.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#340](https://github.com/adamchainz/django-browser-reload/issues/340) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/340\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.20.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.19.0 (2025-09-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the django-jinja template backend.\u003c/p\u003e\n\u003cp\u003eThanks to Jake Howard in \u003ccode\u003ePR [#309](https://github.com/adamchainz/django-browser-reload/issues/309) \u0026lt;https://github.com/adamchainz/django-browser-reload/pull/309\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d21e7d8a04381dedf0047b11f1cbefab02dc2567\"\u003e\u003ccode\u003ed21e7d8\u003c/code\u003e\u003c/a\u003e Version 1.21.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/41835a58b7b68e0e329ff1a3b9b127342675260c\"\u003e\u003ccode\u003e41835a5\u003c/code\u003e\u003c/a\u003e Add CSP nonce support (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/3571cb8b20440020499f1bfd30bed2cef5a84b62\"\u003e\u003ccode\u003e3571cb8\u003c/code\u003e\u003c/a\u003e Improve usage and description\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/1061afd357cabf6c1e674b6581d5057d82e7983c\"\u003e\u003ccode\u003e1061afd\u003c/code\u003e\u003c/a\u003e Promote django-watchfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ec228460b7756eab7e9488b1aa59824cf8646997\"\u003e\u003ccode\u003eec22846\u003c/code\u003e\u003c/a\u003e Remove outdated ASGI note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/10301ed78fe5e7a268bfd155f45fa0d3703fc0f9\"\u003e\u003ccode\u003e10301ed\u003c/code\u003e\u003c/a\u003e Improve tagline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/d944e3371e43ad4d7db0baa47f1a2c050bc42e32\"\u003e\u003ccode\u003ed944e33\u003c/code\u003e\u003c/a\u003e Version 1.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/b77a1dcd7bc22705b65d4b553a30e10fab536223\"\u003e\u003ccode\u003eb77a1dc\u003c/code\u003e\u003c/a\u003e Correct testing of Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/9794a774f5bf2c7b18a7adbb420fdea709a7b39b\"\u003e\u003ccode\u003e9794a77\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/adamchainz/django-browser-reload/issues/338\"\u003e#338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamchainz/django-browser-reload/commit/ca5fbd0e15f19e0ee0ec67963035a0bb3c7a5b5a\"\u003e\u003ccode\u003eca5fbd0\u003c/code\u003e\u003c/a\u003e Version 1.19.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamchainz/django-browser-reload/compare/1.18.0...1.21.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` 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/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env from FIFOs (Unix) by \u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) by \u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini by \u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml by \u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\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/theskumar/python-dotenv/commit/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-admin-interface` from 0.30.0 to 0.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases\"\u003edjango-admin-interface's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.32.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.30.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/blob/main/CHANGELOG.md\"\u003edjango-admin-interface's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.32.0\"\u003e0.32.0\u003c/a\u003e - 2025-12-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[python] Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e[css] Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.1\"\u003e0.31.1\u003c/a\u003e - 2025-12-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Prevent modal popup navigation links from opening a modal. (by \u003ca href=\"https://github.com/julianwachholz\"\u003ejulianwachholz\u003c/a\u003e \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[i18n] Add Arabic translation. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/459\"\u003e#459\u003c/a\u003e (by \u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.31.0\"\u003e0.31.0\u003c/a\u003e - 2025-11-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[python] Add option for making changelist actions sticky.\u003c/li\u003e\n\u003cli\u003e[python] Enable by default sticky behavior.\u003c/li\u003e\n\u003cli\u003e[js] Move inline JS to separate modules to fix CSP issues.\u003c/li\u003e\n\u003cli\u003e[css] Fix next-page button margins in RTL. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/441\"\u003e#441\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/442\"\u003e#442\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e[css] Fix inlines delete-link icon size.\u003c/li\u003e\n\u003cli\u003e[css] Fix filter-horizontal selected options text color.\u003c/li\u003e\n\u003cli\u003e[i18n] Update all missing translations.\u003c/li\u003e\n\u003cli\u003e[ci] Bump actions.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.30.1\"\u003e0.30.1\u003c/a\u003e - 2025-06-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[js] Fix paginator links inside modal (from \u003ccode\u003eraw_id_fields\u003c/code\u003e) returns \u003ccode\u003e404\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/420\"\u003e#420\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Fix \u003ccode\u003eDjango 5.2\u003c/code\u003e selector style. \u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/435\"\u003e#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[css] Reduce theme toggle button size.\u003c/li\u003e\n\u003cli\u003e[ci] Update linter settings.\u003c/li\u003e\n\u003cli\u003e[ci] Bump \u003ccode\u003epre-commit\u003c/code\u003e hooks.\u003c/li\u003e\n\u003cli\u003e[ci] Bump test requirements.\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/fabiocaccamo/django-admin-interface/commit/5d95d802f4085b1215cc6a62fa6d8458b7339c3b\"\u003e\u003ccode\u003e5d95d80\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/2117573b233cc989e340bdfb3ea5b9977fe99f7e\"\u003e\u003ccode\u003e2117573\u003c/code\u003e\u003c/a\u003e Update style for \u003ccode\u003eDjango 6.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/d45c09e62a8654a3f90bf3fc9fa96d413fc58afc\"\u003e\u003ccode\u003ed45c09e\u003c/code\u003e\u003c/a\u003e Update .pre-commit-config.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fea108a89016484fcf0fd90693aa73382a6edbdb\"\u003e\u003ccode\u003efea108a\u003c/code\u003e\u003c/a\u003e Update FUNDING.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/052f8e60be23463dc8e98e8d90f08ba321d62f8e\"\u003e\u003ccode\u003e052f8e6\u003c/code\u003e\u003c/a\u003e Upgrade \u003ccode\u003ecreate-matrix-action\u003c/code\u003e version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8474b3313448ca48dffdd66e9b014becc81cd423\"\u003e\u003ccode\u003e8474b33\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDjango 6.0\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/1cbb618ac8cd3a1ad67dcff4fcea9528411dc1d6\"\u003e\u003ccode\u003e1cbb618\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ePython 3.14\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/bcb6053e8390883ee1375ae7d44d3024f55d3538\"\u003e\u003ccode\u003ebcb6053\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003eCHANGELOG\u003c/code\u003e and version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/8de832489e40d0f5e44c2eb0f1cdb024b21ae9c1\"\u003e\u003ccode\u003e8de8324\u003c/code\u003e\u003c/a\u003e Update translations.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/commit/fd9fa790a6576b15b8fc6c466ce72332eab33fab\"\u003e\u003ccode\u003efd9fa79\u003c/code\u003e\u003c/a\u003e fix modal popup navigation links (\u003ca href=\"https://redirect.github.com/fabiocaccamo/django-admin-interface/issues/462\"\u003e#462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fabiocaccamo/django-admin-interface/compare/0.30.0...0.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.13 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\u003c/code\u003e_)\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/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.13...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-debug-toolbar` from 5.1.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/releases\"\u003edjango-debug-toolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate RedirectsPanel in favor of the HistoryPanel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2223\"\u003edjango-commons/django-debug-toolbar#2223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd cache view to example app by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2243\"\u003edjango-commons/django-debug-toolbar#2243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd zizmor for GHA security analysis by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2201\"\u003edjango-commons/django-debug-toolbar#2201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd indent size of 2 for yml files. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2244\"\u003edjango-commons/django-debug-toolbar#2244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReduce the number of test runs in CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2248\"\u003edjango-commons/django-debug-toolbar#2248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStore the code coverage files on each test run for CI. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2245\"\u003edjango-commons/django-debug-toolbar#2245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse double-quotes for GITHUB_REF_NAME shell variable. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2250\"\u003edjango-commons/django-debug-toolbar#2250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2249\"\u003edjango-commons/django-debug-toolbar#2249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 to testing matrix by \u003ca href=\"https://github.com/adamchainz\"\u003e\u003ccode\u003e@​adamchainz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2251\"\u003edjango-commons/django-debug-toolbar#2251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersist the credentials because coverage_comment needs them. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2252\"\u003edjango-commons/django-debug-toolbar#2252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow cache alias instead of backend repr in calls table by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2219\"\u003edjango-commons/django-debug-toolbar#2219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Django 5.0 to save some CI resources by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2253\"\u003edjango-commons/django-debug-toolbar#2253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBye Python 39 by \u003ca href=\"https://github.com/matthiask\"\u003e\u003ccode\u003e@​matthiask\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2254\"\u003edjango-commons/django-debug-toolbar#2254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for enabling/disabling SQLPanel tracking of toolbar model queries by \u003ca href=\"https://github.com/theShinigami\"\u003e\u003ccode\u003e@​theShinigami\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2211\"\u003edjango-commons/django-debug-toolbar#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce toolbar vs panel organization of configs. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2257\"\u003edjango-commons/django-debug-toolbar#2257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore monospace font for templates and stacktraces by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2261\"\u003edjango-commons/django-debug-toolbar#2261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test to confirm assertNumQueries by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2259\"\u003edjango-commons/django-debug-toolbar#2259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django built-in CSP nonce support by \u003ca href=\"https://github.com/ahumeau\"\u003e\u003ccode\u003e@​ahumeau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2267\"\u003edjango-commons/django-debug-toolbar#2267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet a dependabot cooldown. by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2270\"\u003edjango-commons/django-debug-toolbar#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the hash and version of python-coverage-comment-action by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2269\"\u003edjango-commons/django-debug-toolbar#2269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix string representation of values in settings panel by \u003ca href=\"https://github.com/federicobond\"\u003e\u003ccode\u003e@​federicobond\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2263\"\u003edjango-commons/django-debug-toolbar#2263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare support for Django 6.0 by \u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2272\"\u003edjango-commons/django-debug-toolbar#2272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude dependabot and pre-commit bot commits from GitHub release notes by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2278\"\u003edjango-commons/django-debug-toolbar#2278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove comment for clarity in \u003ccode\u003eDebugToolbarMiddleware\u003c/code\u003e call method by \u003ca href=\"https://github.com/rnazali\"\u003e\u003ccode\u003e@​rnazali\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2283\"\u003edjango-commons/django-debug-toolbar#2283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type hints for History Panel by \u003ca href=\"https://github.com/JohananOppongAmoateng\"\u003e\u003ccode\u003e@​JohananOppongAmoateng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2247\"\u003edjango-commons/django-debug-toolbar#2247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize CI with concurrency by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2287\"\u003edjango-commons/django-debug-toolbar#2287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd LLM usage checkbox to PR template by \u003ca href=\"https://github.com/yeongbin05\"\u003e\u003ccode\u003e@​yeongbin05\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2294\"\u003edjango-commons/django-debug-toolbar#2294\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 6.2.0 by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2298\"\u003edjango-commons/django-debug-toolbar#2298\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/theShinigami\"\u003e\u003ccode\u003e@​theShinigami\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2211\"\u003edjango-commons/django-debug-toolbar#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahumeau\"\u003e\u003ccode\u003e@​ahumeau\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2267\"\u003edjango-commons/django-debug-toolbar#2267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnazali\"\u003e\u003ccode\u003e@​rnazali\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2283\"\u003edjango-commons/django-debug-toolbar#2283\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2287\"\u003edjango-commons/django-debug-toolbar#2287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yeongbin05\"\u003e\u003ccode\u003e@​yeongbin05\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2294\"\u003edjango-commons/django-debug-toolbar#2294\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-commons/django-debug-toolbar/compare/6.1.0...6.2.0\"\u003ehttps://github.com/django-commons/django-debug-toolbar/compare/6.1.0...6.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://django-debug-toolbar.readthedocs.io/en/latest/changes.html#:~:text=6.1.0%20(2025-10-30)\"\u003echange log here\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eCommits:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a note about the default password in make example by \u003ca href=\"https://github.com/abdibaker\"\u003e\u003ccode\u003e@​abdibaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2180\"\u003edjango-commons/django-debug-toolbar#2180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemoved logging about the toolbar failing to serialize a value into JSON by \u003ca href=\"https://github.com/tim-schilling\"\u003e\u003ccode\u003e@​tim-schilling\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/pull/2181\"\u003edjango-commons/django-debug-toolbar#2181\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst\"\u003edjango-debug-toolbar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.0 (2026-01-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eRedirectsPanel\u003c/code\u003e in favor of \u003ccode\u003eHistoryPanel\u003c/code\u003e for viewing\ntoolbar data from redirected requests.\u003c/li\u003e\n\u003cli\u003eFixed support for generating code coverage comments in PRs.\u003c/li\u003e\n\u003cli\u003eAdded Django 6.0 to the testing matrix. Removed Django 5.0 to save CI\nresources.\u003c/li\u003e\n\u003cli\u003eShow the cache backend alias and cache backend class name instead of\nthe cache instance in the cache panel.\u003c/li\u003e\n\u003cli\u003eDropped support for the Python 3.9, it has reached its end of life date.\u003c/li\u003e\n\u003cli\u003eToggle tracking the toolbar's queries when using\n\u003ccode\u003edebug_toolbar.store.DatabaseStore\u003c/code\u003e with \u003ccode\u003eSKIP_TOOLBAR_QUERIES\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFixed font family for code blocks and stack traces in the toolbar.\u003c/li\u003e\n\u003cli\u003eAdded test to confirm Django's \u003ccode\u003eTestCase.assertNumQueries\u003c/code\u003e works.\u003c/li\u003e\n\u003cli\u003eFixed string representation of values in settings panel.\u003c/li\u003e\n\u003cli\u003eDeclared support for Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.1.0 (2025-10-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for async to timer panel.\u003c/li\u003e\n\u003cli\u003eAdded a note about the default password in \u003ccode\u003emake example\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemoved logging about the toolbar failing to serialize a value into JSON.\u003c/li\u003e\n\u003cli\u003eMoved the the import statement of \u003ccode\u003edebug_toolbar.urls\u003c/code\u003e to within the if\nstatement's scope on the installation documentation.\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eStoredDebugToolbar.from_store\u003c/code\u003e to always create a panel key and\nclass instance, regardless if any data was generated.\u003c/li\u003e\n\u003cli\u003eFixed selenium tests for CI by using psycopg for Python 3.13 runs.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCommunityPanel\u003c/code\u003e containing links to documentation and resources.\u003c/li\u003e\n\u003cli\u003eUpgraded CI \u003ccode\u003epostgis\u003c/code\u003e version to 17-3.5.\u003c/li\u003e\n\u003cli\u003eAdded how to generate the documentation locally to the contributing\ndocumentation.\u003c/li\u003e\n\u003cli\u003eUpdated logic that forces values to strings (\u003ccode\u003eforce_str\u003c/code\u003e) to render\n\u0026quot;Django Debug Toolbar was unable to parse value.\u0026quot; when there's a decoding\nerror.\u003c/li\u003e\n\u003cli\u003eUpdated docs to show incompatibility with Django Channels.\u003c/li\u003e\n\u003cli\u003eHide the toolbar's migrations unless \u003ccode\u003edebug_toolbar.store.DatabaseStore\u003c/code\u003e\nis being used. This may change in the future.\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003edebug_toolbar.HistoryEntry\u003c/code\u003e as a model unless\n\u003ccode\u003edebug_toolbar.store.DatabaseStore\u003c/code\u003e is being used. This may change in the\nfuture.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0.0 (2025-07-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for checking if pytest as the test runner when determining\nif tests are running.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eshow_toolbar_with_docker\u003c/code\u003e function to check Docker host IP address\nwhen running inside Docker containers.\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/django-commons/django-debug-toolbar/commit/0b7c8d8edee201bd535b6d40a94a0f1167cf9867\"\u003e\u003ccode\u003e0b7c8d8\u003c/code\u003e\u003c/a\u003e Version 6.2.0 (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2298\"\u003e#2298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/33ecfd1776f301229d2bc5f52d4f769f04972f29\"\u003e\u003ccode\u003e33ecfd1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2282\"\u003e#2282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/03edf77c39687975d0b77c4c55e86e1624d1b9bc\"\u003e\u003ccode\u003e03edf77\u003c/code\u003e\u003c/a\u003e Add LLM usage checkbox to PR template (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2294\"\u003e#2294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/8ebab3d02c5569adc063305749c21f287aadc77a\"\u003e\u003ccode\u003e8ebab3d\u003c/code\u003e\u003c/a\u003e Cancel in-progress runs on new pushes (\u003ca href=\"https://redirect.github.com/django-commons/django-debug-toolbar/issues/2287\"\u003e#2287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/c0d457bc0454251bf1d35543f4a4e4d35ef96ef6\"\u003e\u003ccode\u003ec0d457b\u003c/code\u003e\u003c/a\u003e Refactor type hints and imports in history panel and views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-commons/django-debug-toolbar/commit/ac02a69ef48311360a11c1d3e...\n\n_Description has been truncated_","html_url":"https://github.com/chnm/graffitihouse/pull/42","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chnm%2Fgraffitihouse/issues/42","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42/packages"}},{"old_version":"2.9.10","new_version":"2.9.11","update_type":"patch","path":null,"pr_created_at":"2026-02-01T00:46:23.000Z","version_change":"2.9.10 → 2.9.11","issue":{"uuid":"3880575384","node_id":"PR_kwDOEn_p3c7Ao6VH","number":237,"state":"closed","title":"chore: Bump the python-backend-dependencies group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-03T08:38:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-01T00:46:23.000Z","updated_at":"2026-02-03T08:38:35.000Z","time_to_close":201130,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","group_name":"python-backend-dependencies","update_count":13,"packages":[{"name":"billiard","old_version":"4.2.2","new_version":"4.2.4","repository_url":"https://github.com/celery/billiard"},{"name":"celery","old_version":"5.5.3","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"falcon","old_version":"4.1.0","new_version":"4.2.0","repository_url":"https://github.com/falconry/falcon"},{"name":"gunicorn","old_version":"23.0.0","new_version":"24.1.1","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"kombu","old_version":"5.5.4","new_version":"5.6.2","repository_url":"https://github.com/celery/kombu"},{"name":"oslo-config","old_version":"10.0.0","new_version":"10.2.0"},{"name":"oslo-i18n","old_version":"6.6.0","new_version":"6.7.1"},{"name":"pbr","old_version":"7.0.1","new_version":"7.0.3"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"sqlalchemy","old_version":"2.0.43","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"stevedore","old_version":"5.5.0","new_version":"5.6.0"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.0","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-backend-dependencies group with 13 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [billiard](https://github.com/celery/billiard) | `4.2.2` | `4.2.4` |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.2` |\n| [falcon](https://github.com/falconry/falcon) | `4.1.0` | `4.2.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `24.1.1` |\n| [kombu](https://github.com/celery/kombu) | `5.5.4` | `5.6.2` |\n| [oslo-config](https://docs.openstack.org/oslo.config) | `10.0.0` | `10.2.0` |\n| [oslo-i18n](https://docs.openstack.org/oslo.i18n) | `6.6.0` | `6.7.1` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `7.0.1` | `7.0.3` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.46` |\n| [stevedore](https://docs.openstack.org/stevedore) | `5.5.0` | `5.6.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.0` |\n\n\nUpdates `billiard` from 4.2.2 to 4.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/billiard/releases\"\u003ebilliard's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.2.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEliminate usage of 'return' in 'finally' blocks by \u003ca href=\"https://github.com/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/438\"\u003ecelery/billiard#438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.4 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/439\"\u003ecelery/billiard#439\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/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/438\"\u003ecelery/billiard#438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/billiard/compare/v4.2.3...v4.2.4\"\u003ehttps://github.com/celery/billiard/compare/v4.2.3...v4.2.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that task results are delivered during pool shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/435\"\u003ecelery/billiard#435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.3 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/436\"\u003ecelery/billiard#436\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/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/billiard/pull/435\"\u003ecelery/billiard#435\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/billiard/compare/v4.2.2...v4.2.3\"\u003ehttps://github.com/celery/billiard/compare/v4.2.2...v4.2.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/celery/billiard/blob/main/CHANGES.txt\"\u003ebilliard's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.4 - 2025-11-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEliminate usage of 'return' in 'finally' blocks (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.4 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.3 - 2025-11-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that task results are delivered during pool shutdown (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v4.2.3 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/436\"\u003e#436\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/celery/billiard/commit/69c2f296c2b36622a90c548f26c940712cb9a1df\"\u003e\u003ccode\u003e69c2f29\u003c/code\u003e\u003c/a\u003e Prepare for release: v4.2.4 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/973c773fee4ccd1ab1151d0801905176b284075d\"\u003e\u003ccode\u003e973c773\u003c/code\u003e\u003c/a\u003e Eliminate usage of 'return' in 'finally' blocks (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/51153949934c247ac23de990eee4073adcf08083\"\u003e\u003ccode\u003e5115394\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/437\"\u003e#437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/e8f51d1995cf251787001683dbf443098d8b0ed7\"\u003e\u003ccode\u003ee8f51d1\u003c/code\u003e\u003c/a\u003e Prepare for release: v4.2.3 (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/436\"\u003e#436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/8603172ab818f5069dd191dfaa3eb0a7653c6dda\"\u003e\u003ccode\u003e8603172\u003c/code\u003e\u003c/a\u003e Ensure that task results are delivered during pool shutdown (\u003ca href=\"https://redirect.github.com/celery/billiard/issues/435\"\u003e#435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/billiard/commit/849a3e8414cae0ba953d7c164129c1320e2a241d\"\u003e\u003ccode\u003e849a3e8\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3 to 4 in the github-actions group\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/celery/billiard/compare/v4.2.2...v4.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.5.3 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\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/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `falcon` from 4.1.0 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/falconry/falcon/releases\"\u003efalcon's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cp\u003eFalcon 4.2.0 primarily contains typing enhancements and performance optimizations. This release also marks the debut of pre-compiled wheels for the \u003ca href=\"https://falcon.readthedocs.io/en/stable/user/faq.html#faq-free-threading\"\u003efree-threaded\u003c/a\u003e CPython 3.14 build. \u003ca href=\"https://falcon.readthedocs.io/en/stable/community/help.html#chat\"\u003eLet us know\u003c/a\u003e if you are experimenting with scaling Falcon applications using free-threading!\u003c/p\u003e\n\u003cp\u003e🐍 \u003ca href=\"https://pypi.org/project/falcon/4.2.0/\"\u003eFalcon 4.2.0 on PyPI\u003c/a\u003e\n📚 \u003ca href=\"https://falcon.readthedocs.io/en/stable/changes/4.2.0.html\"\u003eChangelog on RtD\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe typing improvements focus on making the WSGI and ASGI App types \u003ca href=\"https://falcon.readthedocs.io/en/stable/api/typing.html#generic-app-types\"\u003egeneric\u003c/a\u003e (parametrized by the request and response types). This should make it significantly easier to properly annotate applications that leverage custom request and/or response types.\u003c/p\u003e\n\u003cp\u003eAdditionally, we have fixed a reproducibility issue (thanks to \u003ca href=\"https://github.com/bmwiedemann\"\u003e\u003ccode\u003e@​bmwiedemann\u003c/code\u003e\u003c/a\u003e from openSUSE for reporting!) in our documentation build process. Regarding packaging Falcon for distributions in general, we would like to remind you of the \u003ca href=\"https://falcon.readthedocs.io/en/stable/community/packaging.html\"\u003ePackaging Guide\u003c/a\u003e that was published with the previous Falcon release (4.1.0). We hope this guide proves useful.\u003c/p\u003e\n\u003cp\u003eThis release also incorporates a number of pull requests submitted by our community. Sincere thanks to all 8 contributors who made this release possible!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AyanAhmedKhan\"\u003e\u003ccode\u003e@​AyanAhmedKhan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kemingy\"\u003e\u003ccode\u003e@​kemingy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MannXo\"\u003e\u003ccode\u003e@​MannXo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sonephyo\"\u003e\u003ccode\u003e@​sonephyo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TudorGR\"\u003e\u003ccode\u003e@​TudorGR\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x612skm\"\u003e\u003ccode\u003e@​x612skm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0rc1\u003c/h2\u003e\n\u003cp\u003eThis is the first release candidate of Falcon 4.2.0.\u003c/p\u003e\n\u003cp\u003eWe would greatly appreciate it if you could help us with testing on your apps!\nIf you use type checking, please also check how the new \u003ca href=\"https://falcon.readthedocs.io/en/latest/api/typing.html#generic-app-types\"\u003egeneric App types\u003c/a\u003e (and other typing improvements) work for you.\n\u003ca href=\"https://falcon.readthedocs.io/en/latest/community/help.html#chat\"\u003eLet us know\u003c/a\u003e if you run into any issues!\u003c/p\u003e\n\u003cp\u003e:snake: \u003ca href=\"https://pypi.org/project/falcon/4.2.0rc1/\"\u003e4.2.0rc1 on PyPI\u003c/a\u003e\n:books: \u003ca href=\"https://falcon.readthedocs.io/en/latest/changes/4.2.0.html\"\u003eChangelog on RtD\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAs always, you can grab this pre-release \u003ca href=\"https://pypi.org/project/falcon/4.2.0rc1/\"\u003efrom PyPI\u003c/a\u003e:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install falcon==4.2.0rc1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eThank You!\u003c/strong\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/falconry/falcon/commit/554458995d5fb233a1065de464bce3cbeeaa5a35\"\u003e\u003ccode\u003e5544589\u003c/code\u003e\u003c/a\u003e chore: prepare 4.2.0 stable (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2575\"\u003e#2575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/684adbbf0cbd960a75b5db496436fbc03b269bb2\"\u003e\u003ccode\u003e684adbb\u003c/code\u003e\u003c/a\u003e fix(cibw): use the correct arch/os for ARM cp314t wheels (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2573\"\u003e#2573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/d31d9ac35daab77770bae18fce4b0be9bd97c05e\"\u003e\u003ccode\u003ed31d9ac\u003c/code\u003e\u003c/a\u003e chore(release): prepare \u003ccode\u003e4.2.0rc1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2571\"\u003e#2571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/a75d864e21f6c08dbfce77138296ec917857c3b0\"\u003e\u003ccode\u003ea75d864\u003c/code\u003e\u003c/a\u003e feat(platform): provide selected \u003ccode\u003ecp314t\u003c/code\u003e (free-threading) wheels (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2555\"\u003e#2555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/4dcd4fe6af04a3a97791ab662508c2b110496a0f\"\u003e\u003ccode\u003e4dcd4fe\u003c/code\u003e\u003c/a\u003e docs: polish documentation before 4.2.0 release (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2570\"\u003e#2570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/2702ae644c31cee677bff098e8e7e90290eb08ed\"\u003e\u003ccode\u003e2702ae6\u003c/code\u003e\u003c/a\u003e fix: ensure reproducible documentation builds wrt \u003ccode\u003eSOURCE_DATE_EPOCH\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2568\"\u003e#2568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/99717428115184f95892ea3552446f1c2717a82d\"\u003e\u003ccode\u003e9971742\u003c/code\u003e\u003c/a\u003e chore: update \u003ccode\u003edevcontainer\u003c/code\u003e to Python 3.13 with improved setup (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2566\"\u003e#2566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/73b76371c251863c13694a8564562a7a4e14f55b\"\u003e\u003ccode\u003e73b7637\u003c/code\u003e\u003c/a\u003e Fixes Raises section of some request method docstrings (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2557\"\u003e#2557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/d7d203db5fe9c61d128a1e2ff2ad5f52a82f5bee\"\u003e\u003ccode\u003ed7d203d\u003c/code\u003e\u003c/a\u003e chore: add a new Gold Patron LambdaTest (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2554\"\u003e#2554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/falconry/falcon/commit/6bee1aa72e97bcffa0ab57be6e6fddc8e520dcf6\"\u003e\u003ccode\u003e6bee1aa\u003c/code\u003e\u003c/a\u003e feat(routing): add support for QUERY HTTP method (\u003ca href=\"https://redirect.github.com/falconry/falcon/issues/2541\"\u003e#2541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/falconry/falcon/compare/4.1.0...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 24.1.1\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\u003e24.1.1\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eforwarded_allow_ips\u003c/code\u003e and \u003ccode\u003eproxy_allow_ips\u003c/code\u003e to remain as strings for backward\ncompatibility with external tools like uvicorn. Network validation now uses strict\nmode to detect invalid CIDR notation (e.g., \u003ccode\u003e192.168.1.1/24\u003c/code\u003e where host bits are set)\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3458\"\u003e#3458\u003c/a\u003e,\n[PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3459\"\u003e#3459\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3459\"\u003ebenoitc/gunicorn#3459\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/benoitc/gunicorn/compare/24.1.0...24.1.1\"\u003ehttps://github.com/benoitc/gunicorn/compare/24.1.0...24.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eGunicorn 24.1.0\u003c/h2\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eOfficial Docker Image\u003c/strong\u003e: Gunicorn now publishes official Docker images to GitHub Container Registry ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3454\"\u003e#3454\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3454\"\u003ebenoitc/gunicorn#3454\u003c/a\u003e))\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvailable at \u003ccode\u003eghcr.io/benoitc/gunicorn\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBased on Python 3.12 slim image\u003c/li\u003e\n\u003cli\u003eUses recommended worker formula (2 × CPU + 1)\u003c/li\u003e\n\u003cli\u003eConfigurable via environment variables\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePROXY Protocol v2 Support\u003c/strong\u003e: Extended PROXY protocol implementation to support the binary v2 format in addition to the existing text-based v1 format ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3451\"\u003e#3451\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3451\"\u003ebenoitc/gunicorn#3451\u003c/a\u003e))\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ccode\u003e--proxy-protocol\u003c/code\u003e modes: \u003ccode\u003eoff\u003c/code\u003e, \u003ccode\u003ev1\u003c/code\u003e, \u003ccode\u003ev2\u003c/code\u003e, \u003ccode\u003eauto\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eauto\u003c/code\u003e mode (default when enabled) detects v1 or v2 automatically\u003c/li\u003e\n\u003cli\u003ev2 binary format is more efficient and supports additional metadata\u003c/li\u003e\n\u003cli\u003eWorks with HAProxy, AWS NLB/ALB, and other PROXY protocol v2 sources\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCIDR Network Support\u003c/strong\u003e: \u003ccode\u003e--forwarded-allow-ips\u003c/code\u003e and \u003ccode\u003e--proxy-allow-from\u003c/code\u003e now accept CIDR notation (e.g., \u003ccode\u003e192.168.0.0/16\u003c/code\u003e) for specifying trusted networks ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3449\"\u003e#3449\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3449\"\u003ebenoitc/gunicorn#3449\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eSocket Backlog Metric\u003c/strong\u003e: New \u003ccode\u003egunicorn.socket.backlog\u003c/code\u003e gauge metric reports the current socket backlog size on Linux systems ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3450\"\u003e#3450\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3450\"\u003ebenoitc/gunicorn#3450\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eInotifyReloader Enhancement\u003c/strong\u003e: The inotify-based reloader now watches newly imported modules, not just those loaded at startup ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3447\"\u003e#3447\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3447\"\u003ebenoitc/gunicorn#3447\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix signal handling regression where SIGCLD alias caused \u0026quot;Unhandled signal: cld\u0026quot; errors on Linux when workers fail during boot (\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3453\"\u003e#3453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix socket blocking mode on keepalive connections preventing SSL handshake failures with async workers ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3452\"\u003e#3452\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3452\"\u003ebenoitc/gunicorn#3452\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eUse smaller buffer size in \u003ccode\u003efinish_body()\u003c/code\u003e for faster timeout detection on slow or abandoned connections ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3453\"\u003e#3453\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3453\"\u003ebenoitc/gunicorn#3453\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003eSSLWantReadError\u003c/code\u003e in \u003ccode\u003efinish_body()\u003c/code\u003e to prevent worker hangs during SSL renegotiation ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3448\"\u003e#3448\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3448\"\u003ebenoitc/gunicorn#3448\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eLog SIGTERM as info level instead of warning to reduce noise in orchestrated environments ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3446\"\u003e#3446\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3446\"\u003ebenoitc/gunicorn#3446\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003ePrint exception details to stderr when worker fails to boot ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3443\"\u003e#3443\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3443\"\u003ebenoitc/gunicorn#3443\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eunreader.unread()\u003c/code\u003e to prepend data to buffer instead of appending ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3442\"\u003e#3442\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3442\"\u003ebenoitc/gunicorn#3442\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003eRecursionError\u003c/code\u003e when pickling Config objects ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3441\"\u003e#3441\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3441\"\u003ebenoitc/gunicorn#3441\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003eUse proper exception chaining with \u003ccode\u003eraise from\u003c/code\u003e in glogging.py ([PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3440\"\u003e#3440\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3440\"\u003ebenoitc/gunicorn#3440\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install gunicorn==24.1.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/benoitc/gunicorn/commit/375e79e95b78f81b70af0c1ae8e32b7f4beee273\"\u003e\u003ccode\u003e375e79e\u003c/code\u003e\u003c/a\u003e release: bump version to 24.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ad0c12de9813e1616574dd029517f9b58f4b7c3b\"\u003e\u003ccode\u003ead0c12d\u003c/code\u003e\u003c/a\u003e docs: add sponsors section to README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/70200eef468735002b88f3a1ec0e12e9e03c9190\"\u003e\u003ccode\u003e70200ee\u003c/code\u003e\u003c/a\u003e chore: add GitHub Sponsors funding configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/684180411695af8d7e19f71314888c51a021609b\"\u003e\u003ccode\u003e6841804\u003c/code\u003e\u003c/a\u003e docs: remove incorrect PR reference from Docker changelog entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/abce0ca9cb873a55c28a42714cf3c636d7244b06\"\u003e\u003ccode\u003eabce0ca\u003c/code\u003e\u003c/a\u003e docs: add 24.1.1 changelog entry for forwarded_allow_ips fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e9a3f30a0f2e4d91a39afa51ffc8f22a76d9c776\"\u003e\u003ccode\u003ee9a3f30\u003c/code\u003e\u003c/a\u003e fix: keep forwarded_allow_ips as strings for backward compatibility (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3459\"\u003e#3459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d73ff4b1d84cdd4637b914415ad8065c9cf6143c\"\u003e\u003ccode\u003ed73ff4b\u003c/code\u003e\u003c/a\u003e docs: update main changelog with 24.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/53f2c310123f727d5b0711e9220c3847a9730890\"\u003e\u003ccode\u003e53f2c31\u003c/code\u003e\u003c/a\u003e ci: allow docs deploy on workflow_dispatch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/eab5f0b1a5fd2c9e8b334bfd735b1017adaff131\"\u003e\u003ccode\u003eeab5f0b\u003c/code\u003e\u003c/a\u003e ci: trigger Docker publish on tags with or without v prefix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/a20d3fb2206d785ce73b2503ad9a51e7a1a10238\"\u003e\u003ccode\u003ea20d3fb\u003c/code\u003e\u003c/a\u003e docs: add Docker image to 24.1.0 changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...24.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kombu` from 5.5.4 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/kombu/releases\"\u003ekombu's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify requirements given Py3.9+ baseline by \u003ca href=\"https://github.com/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2414\"\u003ecelery/kombu#2414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: credential_provider compatibility issue with redis \u0026lt; 5.3.0 by \u003ca href=\"https://github.com/alaminopu\"\u003e\u003ccode\u003e@​alaminopu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2423\"\u003ecelery/kombu#2423\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SentinelChannel to pass ACL credentials to master_for() by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2426\"\u003ecelery/kombu#2426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the error handling in ack deadline extension by \u003ca href=\"https://github.com/tungntpham\"\u003e\u003ccode\u003e@​tungntpham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2430\"\u003ecelery/kombu#2430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2434\"\u003ecelery/kombu#2434\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/jayaddison\"\u003e\u003ccode\u003e@​jayaddison\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2414\"\u003ecelery/kombu#2414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2426\"\u003ecelery/kombu#2426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungntpham\"\u003e\u003ccode\u003e@​tungntpham\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2430\"\u003ecelery/kombu#2430\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/kombu/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/kombu/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure hub close does also remove global event loop reference by \u003ca href=\"https://github.com/oliverhaas\"\u003e\u003ccode\u003e@​oliverhaas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2404\"\u003ecelery/kombu#2404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: default value for SQS's receive message by \u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2405\"\u003ecelery/kombu#2405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: add support for credential_provider to redis broker by \u003ca href=\"https://github.com/alaminopu\"\u003e\u003ccode\u003e@​alaminopu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2408\"\u003ecelery/kombu#2408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2416\"\u003ecelery/kombu#2416\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/oliverhaas\"\u003e\u003ccode\u003e@​oliverhaas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2404\"\u003ecelery/kombu#2404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2405\"\u003ecelery/kombu#2405\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alaminopu\"\u003e\u003ccode\u003e@​alaminopu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2408\"\u003ecelery/kombu#2408\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/kombu/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/kombu/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003ch3\u003eQoS Max Prefetch Limit \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2348\"\u003ecelery/kombu#2348\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003ePrevent Out Of Memory crashes when queues flood with ETA/countdown tasks. The new optional \u003ccode\u003emax_prefetch\u003c/code\u003e parameter caps how many messages workers hold in memory. Defaults to unlimited (\u003ccode\u003eNone\u003c/code\u003e) to preserve existing behavior.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom kombu.common import QoS\n\u003ch1\u003eLimit prefetch to maximum 100 messages\u003c/h1\u003e\n\u003cp\u003eqos = QoS(callback=consumer.qos, initial_value=10, max_prefetch=100)\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch3\u003eRedis Polling Interval Support \u003ca href=\"https://redirect.github.com/celery/kombu/pull/2346\"\u003ecelery/kombu#2346\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eFix Redis transport to properly propagate \u003ccode\u003epolling_interval\u003c/code\u003e and \u003ccode\u003ebrpop_timeout\u003c/code\u003e from \u003ccode\u003etransport_options\u003c/code\u003e to the Channel's \u003ccode\u003e_brpop_start\u003c/code\u003e timeout.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.broker_transport_options = {\u0026quot;polling_interval\u0026quot;: 10}\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/celery/kombu/blob/main/Changelog.rst\"\u003ekombu's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 29 December, 2025\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Improve error handling in GCP Pub/Sub ack deadline extension ([#2430](https://github.com/celery/kombu/issues/2430))\n- Fix SentinelChannel to pass ACL credentials to master_for() ([#2426](https://github.com/celery/kombu/issues/2426))\n- Fix credential_provider compatibility with redis-py \u0026lt; 5.3.0 ([#2423](https://github.com/celery/kombu/issues/2423))\n- Simplify requirements given Py3.9+ baseline ([#2414](https://github.com/celery/kombu/issues/2414))\n- Prepare for release: v5.6.2 ([#2434](https://github.com/celery/kombu/issues/2434))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 25 November, 2025\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure hub close does also remove global event loop reference (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2404\"\u003e#2404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: default value for SQS's receive message (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2405\"\u003e#2405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: add support for credential_provider to redis broker (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2408\"\u003e#2408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2416\"\u003e#2416\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 1 November, 2025\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nQoS Max Prefetch Limit\n----------------------\n\u003cp\u003e\u003ccode\u003ePR [#2348](https://github.com/celery/kombu/issues/2348) \u0026amp;lt;https://github.com/celery/kombu/pull/2348\u0026amp;gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003ePrevent Out Of Memory crashes when queues flood with ETA/countdown tasks. The new optional \u003ccode\u003emax_prefetch\u003c/code\u003e parameter caps how many messages workers hold in memory. Defaults to unlimited (\u003ccode\u003eNone\u003c/code\u003e) to preserve existing behavior.\u003c/p\u003e\n\u003cp\u003e.. code-block:: python\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efrom kombu.common import QoS\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/279b81f3042f23524111d3afcc773e8bb5530672\"\u003e\u003ccode\u003e279b81f\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2434\"\u003e#2434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/a12f3a924a21a5ee1f3b5ee9f60dd93e11102c42\"\u003e\u003ccode\u003ea12f3a9\u003c/code\u003e\u003c/a\u003e Improve the error handling in ack deadline extension (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2430\"\u003e#2430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/4055fa764b419f2c620f44c7c63afc7248d189b0\"\u003e\u003ccode\u003e4055fa7\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2432\"\u003e#2432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/8756f49760ea68a8fe81fb5a6fbd524363c8bccb\"\u003e\u003ccode\u003e8756f49\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2429\"\u003e#2429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/0a5a0bc26fd5ef775d2d3c3087820f7baea474a2\"\u003e\u003ccode\u003e0a5a0bc\u003c/code\u003e\u003c/a\u003e Fix SentinelChannel to pass ACL credentials to master_for() (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2426\"\u003e#2426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/f204769417e3b46b74f75b9e66e23d1e3033573c\"\u003e\u003ccode\u003ef204769\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2424\"\u003e#2424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/9a7285908f0d4a4c548bdd011a8b2d54371b6077\"\u003e\u003ccode\u003e9a72859\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.18.2 to 1.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/260d51750e6f04bf716d240912dc4bdcae269ba5\"\u003e\u003ccode\u003e260d517\u003c/code\u003e\u003c/a\u003e fix: credential_provider compatibility issue with redis \u0026lt; 5.3.0 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2423\"\u003e#2423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/161a61b934fcfd9197f4d3e1458479e82cd717dc\"\u003e\u003ccode\u003e161a61b\u003c/code\u003e\u003c/a\u003e Simplify requirements given Py3.9+ baseline (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2414\"\u003e#2414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/kombu/commit/5208431c95bda47c7f422638dd273e086ab34be9\"\u003e\u003ccode\u003e5208431\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/kombu/issues/2416\"\u003e#2416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/kombu/compare/v5.5.4...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oslo-config` from 10.0.0 to 10.2.0\n\nUpdates `oslo-i18n` from 6.6.0 to 6.7.1\n\nUpdates `pbr` from 7.0.1 to 7.0.3\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.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/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.43 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `stevedore` from 5.5.0 to 5.6.0\n\nUpdates `wrapt` from 1.17.3 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/releases\"\u003ewrapt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ewrapt-2.1.0\u003c/h2\u003e\n\u003cp\u003eSee the project page on the Python Package Index at \u003ca href=\"https://pypi.org/project/wrapt/2.1.0/\"\u003ehttps://pypi.org/project/wrapt/2.1.0/\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003ewrapt-2.0.1\u003c/h2\u003e\n\u003cp\u003eSee the project page on the Python Package Index at \u003ca href=\"https://pypi.org/project/wrapt/2.0.1/\"\u003ehttps://pypi.org/project/wrapt/2.0.1/\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003ewrapt-2.0.0\u003c/h2\u003e\n\u003cp\u003eSee the project page on the Python Package Index at \u003ca href=\"https://pypi.org/project/wrapt/2.0.0/\"\u003ehttps://pypi.org/project/wrapt/2.0.0/\u003c/a\u003e for more information.\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/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst\"\u003ewrapt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.1.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures Changed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. Python version 3.9 or later is now required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved type hints so that \u003ccode\u003emypy\u003c/code\u003e and \u003ccode\u003ety\u003c/code\u003e work better for methods of\nclasses when using \u003ccode\u003ewrapt.decorator\u003c/code\u003e and \u003ccode\u003ewrapt.function_wrapper\u003c/code\u003e. Note\nthat applying these to static methods still does not work correctly due to\npossibly limitations in those type checkers. The \u003ccode\u003epyrefly\u003c/code\u003e tool still does\nnot work correctly with \u003ccode\u003ewrapt.decorator\u003c/code\u003e and \u003ccode\u003ewrapt.function_wrapper\u003c/code\u003e\napplied to any methods of classes. Overall \u003ccode\u003epyright\u003c/code\u003e provides the best\nexperience when using \u003ccode\u003ewrapt\u003c/code\u003e with type checking.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e function wasn't included in the\n\u003ccode\u003e__all__\u003c/code\u003e attribute of the \u003ccode\u003ewrapt\u003c/code\u003e module, meaning that it wasn't\naccessible when using \u003ccode\u003efrom wrapt import *\u003c/code\u003e and type checkers such as\n\u003ccode\u003emypy\u003c/code\u003e or \u003ccode\u003epylance\u003c/code\u003e may not see it as part of the public API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen using \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e to lazily import a function of a module,\nthe resulting proxy object wasn't marked as callable until something triggered\nthe import of the module via the proxy. This meant a \u003ccode\u003ecallable()\u003c/code\u003e check\non the proxy would return \u003ccode\u003eFalse\u003c/code\u003e until the module was actually imported.\nFurther, calling the proxy before the module was imported would raise\n\u003ccode\u003eTypeError: 'LazyObjectProxy' object is not callable\u003c/code\u003e rather than\nimporting the module and calling the function as expected. In order to\naddress this issue, an additional keyword argument \u003ccode\u003einterface\u003c/code\u003e has been\nadded to \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e which can be used to specify the expected\ninterface type of the wrapped object. This will default to \u003ccode\u003eCallable\u003c/code\u003e\nwhen an attribute name is supplied, and to \u003ccode\u003eModuleType\u003c/code\u003e when no attribute\nname is supplied. If using \u003ccode\u003ewrapt.lazy_import()\u003c/code\u003e and supplying an\n\u003ccode\u003eattribute\u003c/code\u003e argument, and you expect the wrapped object to be something\nother than a callable, you should now also supply \u003ccode\u003einterface=...\u003c/code\u003e with the\nappropriate type from \u003ccode\u003ecollections.abc\u003c/code\u003e to ensure the proxy behaves correctly\nprior to the module being imported. This should only be necessary where the\nwrapped object has special dunder methods on its type which need to exist on\nthe proxy prior to the module being imported.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.0\u003c/h2\u003e\n\u003cp\u003eThere have been subtle changes in various corner cases of the behaviour of the\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0febe4a0e314b0594329d6258159b4327988ed33\"\u003e\u003ccode\u003e0febe4a\u003c/code\u003e\u003c/a\u003e Merge branch 'release/2.1.0'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/6a526b6438d4150075a657438f9c45c5f922b4ef\"\u003e\u003ccode\u003e6a526b6\u003c/code\u003e\u003c/a\u003e Drop rc tag ready for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/f136593e328f7e2507af3937e4a8aa9958d23398\"\u003e\u003ccode\u003ef136593\u003c/code\u003e\u003c/a\u003e Add additional note to changes file.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/1ae09db2d949fb5fb0f3765b4fc2dc17375a61c6\"\u003e\u003ccode\u003e1ae09db\u003c/code\u003e\u003c/a\u003e Update version to 2.1.0rc1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/bf5381391c05e03eedd3e40f4c450744b970c59c\"\u003e\u003ccode\u003ebf53813\u003c/code\u003e\u003c/a\u003e Update for 2.1.0dev2 snapshot.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/56b5c3d895e0d61081b48c07a9f177ae13e47df4\"\u003e\u003ccode\u003e56b5c3d\u003c/code\u003e\u003c/a\u003e Skip mypy tests when using pypy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/bfd71dc8317d67406ca21134f68c470549056683\"\u003e\u003ccode\u003ebfd71dc\u003c/code\u003e\u003c/a\u003e Improve type hints so works better with mypy and ty.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/64b95ec538a7b9a162345398e70b57ccd2a5853a\"\u003e\u003ccode\u003e64b95ec\u003c/code\u003e\u003c/a\u003e Stop using deprecated settings format.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/ff1d03324e5db7f0c67d7969c2b2d01f8465f36e\"\u003e\u003ccode\u003eff1d033\u003c/code\u003e\u003c/a\u003e Fix formatting of tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/3c91a0cb30d8469bba36fe087370ea593a70f3ff\"\u003e\u003ccode\u003e3c91a0c\u003c/code\u003e\u003c/a\u003e Remove top level \u003cstrong\u003epycache\u003c/strong\u003e directory.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/compare/1.17.3...2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\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/mendersoftware/mantra/pull/237","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendersoftware%2Fmantra/issues/237","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/237/packages"}}]}