{"id":18202,"name":"python-gitlab","ecosystem":"pip","repository_url":"https://github.com/python-gitlab/python-gitlab","issues_count":145,"created_at":"2025-06-07T01:13:24.519Z","updated_at":"2025-06-07T01:13:24.519Z","purl":"pkg:pypi/python-gitlab","metadata":{"id":2887694,"name":"python-gitlab","ecosystem":"pypi","description":"The python wrapper for the GitLab REST and GraphQL APIs.","homepage":"https://github.com/python-gitlab/python-gitlab","licenses":"LGPL-3.0-or-later","normalized_licenses":["LGPL-3.0-or-later"],"repository_url":"https://github.com/python-gitlab/python-gitlab","keywords_array":["api","client","gitlab","python","python-gitlab","wrapper"],"namespace":null,"versions_count":111,"first_release_published_at":"2013-07-08T15:32:33.000Z","latest_release_published_at":"2025-06-04T02:38:31.000Z","latest_release_number":"6.0.0","last_synced_at":"2025-06-06T13:31:31.293Z","created_at":"2022-04-10T12:20:55.474Z","updated_at":"2025-06-06T13:31:31.293Z","registry_url":"https://pypi.org/project/python-gitlab/","install_command":"pip install python-gitlab --index-url https://pypi.org/simple","documentation_url":"https://python-gitlab.readthedocs.io","metadata":{"funding":null,"documentation":"https://python-gitlab.readthedocs.io","classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Intended Audience :: System Administrators","License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)","Natural Language :: English","Operating System :: Microsoft :: Windows","Operating System :: POSIX","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9"],"normalized_name":"python-gitlab"},"repo_metadata":{"id":6829359,"uuid":"8077625","full_name":"python-gitlab/python-gitlab","owner":"python-gitlab","description":"A python wrapper for the GitLab API.","archived":false,"fork":false,"pushed_at":"2024-04-23T06:38:53.000Z","size":5321,"stargazers_count":2162,"open_issues_count":123,"forks_count":638,"subscribers_count":50,"default_branch":"main","last_synced_at":"2024-04-23T13:44:55.693Z","etag":null,"topics":["api","gitlab","gitlab-api","gitlab-ci","gitlab-cli","hacktoberfest","python"],"latest_commit_sha":null,"homepage":"https://python-gitlab.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-gitlab.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.rst","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null}},"created_at":"2013-02-07T17:23:16.000Z","updated_at":"2024-04-24T18:48:43.902Z","dependencies_parsed_at":"2023-09-28T18:15:04.529Z","dependency_job_id":"4d6d4f93-4b37-46de-9376-d68f3b3d0c71","html_url":"https://github.com/python-gitlab/python-gitlab","commit_stats":{"total_commits":2439,"total_committers":280,"mean_commits":8.710714285714285,"dds":0.7109471094710946,"last_synced_commit":"a2b8c8ccfb5d4fa4d134300861a3bfb0b10246ca"},"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-gitlab","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215687591,"owners_count":15916351,"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":"python-gitlab","name":"python-gitlab","uuid":"28886265","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/28886265?v=4","repositories_count":2,"last_synced_at":"2024-03-25T20:24:17.198Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-gitlab","funding_links":[],"total_stars":2145,"followers":8,"following":0,"created_at":"2022-11-02T16:31:57.548Z","updated_at":"2024-03-25T20:24:17.232Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-gitlab","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-gitlab/repositories"},"tags":[{"name":"v4.4.0","sha":"72e1aa7f2c2aad739db2f5dd4394165a5b5f2432","kind":"tag","published_at":"2024-01-15T08:15:33.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v4.4.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.4.0/manifests"},{"name":"v4.3.0","sha":"b8824a6c2f06903dc8975aaf5f8807a7b1245a6a","kind":"tag","published_at":"2023-12-28T00:37:23.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v4.3.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.3.0/manifests"},{"name":"v4.2.0","sha":"428b4fdee5402f1588f35fb50d98b2225d083f6d","kind":"tag","published_at":"2023-11-28T00:38:53.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v4.2.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.2.0/manifests"},{"name":"v4.1.1","sha":"e7229ce833baa2ed23ed3dea0324e6e36fdb8d21","kind":"tag","published_at":"2023-11-03T16:13:46.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v4.1.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.1.1/manifests"},{"name":"v4.1.0","sha":"ecc28cb6657461df16e4e5b511e60300f7be834d","kind":"tag","published_at":"2023-10-28T00:35:36.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v4.1.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.1.0/manifests"},{"name":"v4.0.0","sha":"83cc63dcbaadd632fa203312b51e3fa202cddd02","kind":"tag","published_at":"2023-10-17T16:39:28.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v4.0.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v4.0.0/manifests"},{"name":"v3.15.0","sha":"2fbd1bf73c15959f4345befd03a28df882b461bd","kind":"tag","published_at":"2023-06-09T09:51:27.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.15.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.15.0/manifests"},{"name":"v3.14.0","sha":"f310764c60a2dd2dd0de73747c86fef01a1605d4","kind":"tag","published_at":"2023-04-11T12:27:50.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.14.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.14.0/manifests"},{"name":"v3.13.0","sha":"a208276c83006ddddfbd38bc46883af078e6b215","kind":"tag","published_at":"2023-01-30T21:57:03.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.13.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.13.0/manifests"},{"name":"v3.12.0","sha":"22b11db35196eb414f5095a587dc7e50a3fa3a0b","kind":"tag","published_at":"2022-11-28T00:32:52.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.12.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.12.0/manifests"},{"name":"v3.11.0","sha":"f04e8ba242d8d3c20c669a683655b1fd4766bdd7","kind":"tag","published_at":"2022-10-28T00:45:31.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.11.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.11.0/manifests"},{"name":"v3.10.0","sha":"239db3dbc53e2384be459a92688e3ce70e1bf7b7","kind":"tag","published_at":"2022-09-28T00:51:49.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.10.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.10.0/manifests"},{"name":"v3.9.0","sha":"a35fad14238ec9902e06d121e1681d156b932c49","kind":"tag","published_at":"2022-08-28T00:41:49.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.9.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.9.0/manifests"},{"name":"v3.8.1","sha":"3f91d2455657c570851f625c0d80c685d9393cbb","kind":"tag","published_at":"2022-08-10T12:50:36.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.8.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.8.1/manifests"},{"name":"v3.8.0","sha":"50822f808e44be42f176d4c093a0ea9ed1f6add1","kind":"tag","published_at":"2022-08-04T17:03:56.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.8.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.8.0/manifests"},{"name":"v3.7.0","sha":"8ba97aa459420ec5ae824d9299d6564656841559","kind":"tag","published_at":"2022-07-28T14:55:02.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.7.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.7.0/manifests"},{"name":"v3.6.0","sha":"d9ea7161eebe7bdceee9b0fba9339e3e2dccf305","kind":"tag","published_at":"2022-06-28T02:13:30.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.6.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.6.0/manifests"},{"name":"v3.5.0","sha":"387a14028b809538530f56f136436c783667d0f1","kind":"tag","published_at":"2022-05-28T15:53:30.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.5.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.5.0/manifests"},{"name":"v3.4.0","sha":"e638be1a2329afd7c62955b4c423b7ee7f672fdb","kind":"tag","published_at":"2022-04-28T02:50:19.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.4.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.4.0/manifests"},{"name":"v3.3.0","sha":"121d70a84ff7cd547b2d75f238d9f82c5bc0982f","kind":"tag","published_at":"2022-03-28T01:51:54.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.3.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.3.0/manifests"},{"name":"v3.2.0","sha":"a14baacd4877e5c5a98849f1a9dfdb58585f0707","kind":"tag","published_at":"2022-02-28T01:21:49.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.2.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.2.0/manifests"},{"name":"v3.1.1","sha":"59c08f9e8ba259eee7db9bf195bd23f3c9a51f79","kind":"tag","published_at":"2022-01-28T01:13:22.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.1.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"cbbe7ce61db0649be286c5c1a239e00ed86f8039","kind":"tag","published_at":"2022-01-14T01:30:39.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.1.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.1.0/manifests"},{"name":"v3.0.0","sha":"9894b3580a7eb5c2e377c482820ff3210f913abe","kind":"tag","published_at":"2022-01-05T08:28:28.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v3.0.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v3.0.0/manifests"},{"name":"v2.10.1","sha":"a00ec87bdbadccaf3e3700a48cbb797fd2750107","kind":"tag","published_at":"2021-08-28T00:15:48.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.10.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.10.1/manifests"},{"name":"v2.10.0","sha":"cec99d0d0d1892a7d124d81fd5da4234e61c180b","kind":"tag","published_at":"2021-07-28T00:15:47.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.10.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.10.0/manifests"},{"name":"v2.9.0","sha":"330d69cd1ed48ca9289cdaa7d00ae7dec6b7dfba","kind":"tag","published_at":"2021-06-28T00:14:12.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.9.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.9.0/manifests"},{"name":"v2.8.0","sha":"dc535565ca86154305bafba5ef45eb7abe66055b","kind":"tag","published_at":"2021-06-10T22:03:11.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.8.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.8.0/manifests"},{"name":"v2.7.1","sha":"37af2296703a481721489a66c5fc554257e34527","kind":"commit","published_at":"2021-04-26T20:37:01.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.7.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.7.1/manifests"},{"name":"v2.7.0","sha":"e37de189d5799e9bdbbd7556289d4b617aff9c4d","kind":"commit","published_at":"2021-04-25T19:49:15.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.7.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.7.0/manifests"},{"name":"v2.6.0","sha":"48cb89bad043f7e406e2358a20512653fc40556d","kind":"commit","published_at":"2021-01-29T12:29:06.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.6.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.6.0/manifests"},{"name":"v2.5.0","sha":"784cba659a9d15076711f5576549b4288df322cc","kind":"commit","published_at":"2020-09-01T08:01:02.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.5.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.5.0/manifests"},{"name":"v2.4.0","sha":"1606310a880f8a8a2a370db27511b57732caf178","kind":"commit","published_at":"2020-07-09T15:30:59.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.4.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.4.0/manifests"},{"name":"v2.3.1","sha":"3f585ad3f823aef4dd848942399e2bd0530a09b2","kind":"commit","published_at":"2020-06-09T11:55:33.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.3.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"1f7dbc8dfb9c200d31ce8fad06feb235cade1481","kind":"commit","published_at":"2020-06-08T15:50:24.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.3.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.3.0/manifests"},{"name":"v2.2.0","sha":"22d4b465c3217536cb444dafe5c25e9aaa3aa7be","kind":"commit","published_at":"2020-04-07T08:44:09.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.2.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.2.0/manifests"},{"name":"v2.1.2","sha":"ad7e2bf7472668ffdcc85eec30db4139b92595a6","kind":"commit","published_at":"2020-03-09T16:00:41.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.1.2","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.1.2/manifests"},{"name":"v2.1.1","sha":"6c5458a3bfc3208ad2d7cc40e1747f7715abe449","kind":"commit","published_at":"2020-03-09T14:26:04.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.1.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"481bd4f70e89b4fffb35a009e5532a2cec89607a","kind":"commit","published_at":"2020-03-08T11:17:07.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.1.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.1.0/manifests"},{"name":"v2.0.1","sha":"272db2655d80fb81fbe1d8c56f241fe9f31b47e0","kind":"commit","published_at":"2020-02-05T10:50:48.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.0.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"df485a92b713a0f2f983c72d9d41ea3a771abf88","kind":"commit","published_at":"2020-01-26T16:49:22.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v2.0.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v2.0.0/manifests"},{"name":"v1.15.0","sha":"2a01326e8e02bbf418b3f4c49ffa60c735b107dc","kind":"commit","published_at":"2019-12-16T20:24:27.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.15.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"164fa4f360a1bb0ecf5616c32a2bc31c78c2594f","kind":"commit","published_at":"2019-12-07T21:36:21.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.14.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"f39c68fd0b180ba72dd11e3cbad932d16d4bb484","kind":"commit","published_at":"2019-11-02T10:48:29.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.13.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.13.0/manifests"},{"name":"v1.12.1","sha":"f4b29278771e48320e2da4bacc4544d263d1754c","kind":"commit","published_at":"2019-10-07T19:58:37.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.12.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"35cc8c789fda4977add7f399bf426352b1aa246f","kind":"commit","published_at":"2019-10-06T17:51:03.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.12.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"37542cd28aa94ba01d5d289d950350ec856745af","kind":"commit","published_at":"2019-08-31T21:17:11.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.11.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.11.0/manifests"},{"name":"v1.10.0","sha":"2c1ea56a217525bbb0a5321eb392c7fe7c100d44","kind":"commit","published_at":"2019-07-22T19:09:26.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/v1.10.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/v1.10.0/manifests"},{"name":"1.9.0","sha":"4b0443285e3207d89b4b46211f713614fb526758","kind":"commit","published_at":"2019-06-19T15:28:06.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.9.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.9.0/manifests"},{"name":"1.8.0","sha":"57fa4e37aaf6ccee0d75085520f96fd15752a3df","kind":"commit","published_at":"2019-02-22T09:03:07.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.8.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.8.0/manifests"},{"name":"1.7.0","sha":"704ca51d9e487b2a665f219a5f7ce8b05e8eeea7","kind":"commit","published_at":"2018-12-09T09:11:53.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.7.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.7.0/manifests"},{"name":"1.6.0","sha":"d8c2488a7b32e8f4a36109c4a4d6d4aad7ab8942","kind":"commit","published_at":"2018-08-25T14:45:52.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.6.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.6.0/manifests"},{"name":"1.5.1","sha":"5e6330f82b121a4d7772f4083dd94bdf9a6d915d","kind":"commit","published_at":"2018-06-23T08:01:36.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.5.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.5.1/manifests"},{"name":"1.5.0","sha":"eaa44509316ad7e80f9e73ddde310987132d7508","kind":"commit","published_at":"2018-06-22T10:42:38.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.5.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.5.0/manifests"},{"name":"1.4.0","sha":"701169441194bf0441cee13f2ab5784ffad7a207","kind":"commit","published_at":"2018-05-19T14:19:28.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.4.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.4.0/manifests"},{"name":"1.3.0","sha":"10bd1f43f59b2257e6195b290b0dc8a578b7562a","kind":"commit","published_at":"2018-02-18T09:11:30.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.3.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.3.0/manifests"},{"name":"1.2.0","sha":"3a119cd6a4841fae5b2f116512830ed12b4b29f0","kind":"commit","published_at":"2018-01-01T17:16:48.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.2.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.2.0/manifests"},{"name":"1.1.0","sha":"32f7e17208987fa345670421c333e22ae6aced6a","kind":"commit","published_at":"2017-11-03T14:37:15.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.1.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.1.0/manifests"},{"name":"1.0.2","sha":"9e09cf618a01e2366f2ae7d66874f4697567cfc3","kind":"commit","published_at":"2017-09-29T09:12:53.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.0.2","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.0.2/manifests"},{"name":"1.0.1","sha":"e5f59bd065ecfc3b66d101d7093a94995a7110e2","kind":"commit","published_at":"2017-09-21T20:23:07.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.0.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.0.1/manifests"},{"name":"1.0.0","sha":"3d8df3ccb22142c4cff86ba879882b0269f1b3b6","kind":"commit","published_at":"2017-09-08T05:02:52.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/1.0.0","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/1.0.0/manifests"},{"name":"0.21.2","sha":"19f1b1a968aba7bd9604511c015e8930e5111324","kind":"commit","published_at":"2017-06-11T11:56:49.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.21.2","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.21.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.21.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.21.2/manifests"},{"name":"0.21.1","sha":"4bf251cf94d902e919bfd5a75f5a9bdc4e8bf9dc","kind":"commit","published_at":"2017-05-25T05:32:00.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.21.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.21.1/manifests"},{"name":"0.21","sha":"cd9194baa78ec55800312661e97fc5a45ed1d659","kind":"commit","published_at":"2017-05-24T12:51:46.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.21","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.21/manifests"},{"name":"0.20","sha":"c545504da79bca1f26ccfc16c3bf34ef3cc0d22c","kind":"commit","published_at":"2017-03-25T15:42:42.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.20","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.20/manifests"},{"name":"0.19","sha":"cd696240ec9000ce12c4232db3436fbca58b8fdd","kind":"commit","published_at":"2017-02-21T04:54:43.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.19","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.19/manifests"},{"name":"0.18","sha":"8028ec7807f18c928610ca1be36907bfc4c25f1f","kind":"commit","published_at":"2016-12-27T14:13:18.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.18","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.18/manifests"},{"name":"0.17","sha":"932ccd2214fc41a8274626397c4a88a3d6eef585","kind":"commit","published_at":"2016-12-02T19:41:32.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.17","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.17/manifests"},{"name":"0.16","sha":"46ea44acea4cbac5037cc91141aa205326448801","kind":"commit","published_at":"2016-10-16T06:47:06.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.16","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.16/manifests"},{"name":"0.15.1","sha":"90ad2dec7a0b158b2e77ae0cb403b01f2e1498d4","kind":"tag","published_at":"2016-10-16T05:25:45.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.15.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.15.1/manifests"},{"name":"0.15","sha":"47cb27824d2e1b3d056817c45cbb2d5dca1df904","kind":"commit","published_at":"2016-08-28T06:03:32.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.15","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.15/manifests"},{"name":"0.14","sha":"e4624c9f17a8fbbe57da4316e6927f6d39bcc5a3","kind":"commit","published_at":"2016-08-07T20:11:36.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.14","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.14/manifests"},{"name":"0.13","sha":"0535808d5a82ffbcd5a7ea23ecc4d0c22dad34a1","kind":"commit","published_at":"2016-05-16T11:16:58.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.13","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.13/manifests"},{"name":"0.12.2","sha":"bb463ae4e0ed79e472c0d594f76dc8177a29fb5c","kind":"commit","published_at":"2016-03-19T14:36:56.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.12.2","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.12.2/manifests"},{"name":"0.12.1","sha":"942468d344eac2a70f73ed69a43c27a87baf78db","kind":"commit","published_at":"2016-02-03T20:15:55.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.12.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.12.1/manifests"},{"name":"0.12","sha":"74d82d4109e65d541707638fc9d3efc110c6ef32","kind":"commit","published_at":"2016-02-03T20:14:07.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.12","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.12/manifests"},{"name":"0.11.1","sha":"bbcccaa5407fa9d281f8b1268a653b6dff29d050","kind":"commit","published_at":"2016-01-17T16:23:56.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.11.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.11.1/manifests"},{"name":"0.11","sha":"3e8cf4e9ea59b97bb1703b9cee1c3a3d9e6c7c42","kind":"commit","published_at":"2016-01-09T14:42:19.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.11","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.11/manifests"},{"name":"0.10","sha":"38f17c1a04bdc668d3599555f85c891246893429","kind":"commit","published_at":"2015-12-29T14:47:54.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.10","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.10/manifests"},{"name":"0.9.2","sha":"4bb42de27aec0aaa850c1e2cfc251a1c24658563","kind":"commit","published_at":"2015-07-11T06:58:45.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.9.2","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.9.2/manifests"},{"name":"0.9.1","sha":"1f48e659838e18a08290575454a222d5df79f202","kind":"commit","published_at":"2015-05-15T14:52:09.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.9.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.9.1/manifests"},{"name":"0.9","sha":"e12abf18b5f8438c55ff6e8f7e89476dc11438f7","kind":"commit","published_at":"2015-05-15T14:27:42.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.9","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.9/manifests"},{"name":"0.8","sha":"296a72f9f137c2d5ea54e8f72a5fbe9c9833ee85","kind":"commit","published_at":"2014-10-26T05:48:04.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.8","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.8/manifests"},{"name":"0.7","sha":"8846bf7aaf21168ae75b90321dd84eb543c43a3e","kind":"commit","published_at":"2014-08-21T15:03:47.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.7","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.7/manifests"},{"name":"0.6","sha":"1fe783dba0e63796411bc6a358191a3144dc9bb8","kind":"commit","published_at":"2014-01-16T07:18:39.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.6","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.6/manifests"},{"name":"0.5","sha":"04574f381d3d50afa86ec890681105f8f5a2a31e","kind":"commit","published_at":"2013-12-26T14:40:00.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.5","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.5/manifests"},{"name":"0.4","sha":"5f0136c7f84c7c6235d360aee6104232639a1d63","kind":"commit","published_at":"2013-09-26T18:43:05.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.4","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.4/manifests"},{"name":"0.3","sha":"ceda87a6cac2558caeecd9c7bc96c2a08cb36cf9","kind":"commit","published_at":"2013-08-27T14:08:28.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.3","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.3/manifests"},{"name":"0.2","sha":"d1cd3dc8f8ed37e2c05060815158217ac16ac494","kind":"commit","published_at":"2013-08-08T20:27:33.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.2","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.2/manifests"},{"name":"0.1","sha":"d65b684aa6ef18d779c95e578fb16bf87248c76d","kind":"commit","published_at":"2013-07-08T14:23:15.000Z","download_url":"https://codeload.github.com/python-gitlab/python-gitlab/tar.gz/0.1","html_url":"https://github.com/python-gitlab/python-gitlab/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-gitlab%2Fpython-gitlab/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2024-09-08T20:58:42.190Z","dependent_packages_count":193,"downloads":10829170,"downloads_period":"last-month","dependent_repos_count":3468,"rankings":{"downloads":0.1422264655638362,"dependent_repos_count":0.17773376625938478,"dependent_packages_count":0.12056370933687986,"stargazers_count":1.512413746848727,"forks_count":1.8638271505052757,"docker_downloads_count":0.08561204723260044,"average":0.6503961476244507},"purl":"pkg:pypi/python-gitlab","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/python-gitlab","docker_dependents_count":294,"docker_downloads_count":795627245,"usage_url":"https://repos.ecosyste.ms/usage/pypi/python-gitlab","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/python-gitlab/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-gitlab/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-gitlab/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-gitlab/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-gitlab/related_packages","maintainers":[{"uuid":"bufferoverflow","login":"bufferoverflow","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/bufferoverflow/","role":null,"created_at":"2022-12-07T15:59:08.738Z","updated_at":"2022-12-07T15:59:08.738Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/bufferoverflow/packages"},{"uuid":"max-wittig","login":"max-wittig","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/max-wittig/","role":null,"created_at":"2022-12-07T15:59:08.781Z","updated_at":"2022-12-07T15:59:08.781Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/max-wittig/packages"},{"uuid":"nejch","login":"nejch","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/nejch/","role":null,"created_at":"2023-01-17T16:39:54.073Z","updated_at":"2023-01-17T16:39:54.073Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/nejch/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":43,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4014088310","node_id":"PR_kwDOQ2NDNc7HeiTX","number":1375,"state":"open","title":"chore(deps): bump python-gitlab from 4.4.0 to 8.1.0 in /control-plane-api","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-03T00:53:36.000Z","updated_at":"2026-03-04T09:01:45.804Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"python-gitlab","old_version":"4.4.0","new_version":"8.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/control-plane-api","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 4.4.0 to 8.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.0 (2026-02-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes\u003c/strong\u003e: Add explicit submodule import for pyright compatibility (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000\"\u003e\u003ccode\u003e84ad3fd\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for order_by filter in runner jobs (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf\"\u003e\u003ccode\u003ed5dc73d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for sort filter in runner jobs (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/b117ee3d139f422e463ebeb5007517a2052af8a4\"\u003e\u003ccode\u003eb117ee3\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v8.0.0...v8.1.0\"\u003ev8.0.0...v8.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.0 (2026-02-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes\u003c/strong\u003e: Add explicit submodule import for pyright compatibility\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000\"\u003e\u003ccode\u003e84ad3fd\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for order_by filter in runner jobs\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf\"\u003e\u003ccode\u003ed5dc73d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for sort filter in runner jobs\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/b117ee3d139f422e463ebeb5007517a2052af8a4\"\u003e\u003ccode\u003eb117ee3\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\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-gitlab/python-gitlab/commit/5294a4862511aed78ed7e5cc45ea6424b5f48825\"\u003e\u003ccode\u003e5294a48\u003c/code\u003e\u003c/a\u003e chore: release v8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf\"\u003e\u003ccode\u003ed5dc73d\u003c/code\u003e\u003c/a\u003e feat(api): add support for order_by filter in runner jobs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0bfaa6b0d5381a9dce8d5c37696188395bb9c08f\"\u003e\u003ccode\u003e0bfaa6b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency types-setuptools to v82\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/14bdc0497df4828908d721567b10946c51527275\"\u003e\u003ccode\u003e14bdc04\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e5fd81dd51fc4a8c8da24da966818308a8ebb5a9\"\u003e\u003ccode\u003ee5fd81d\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/b0e064d022f30da2cd9ffa8c2e01f10e1f553108\"\u003e\u003ccode\u003eb0e064d\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.9.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3355\"\u003e#3355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000\"\u003e\u003ccode\u003e84ad3fd\u003c/code\u003e\u003c/a\u003e fix(types): add explicit submodule import for pyright compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4e01d33cc85cff1ab6fac28ddc6fa52ade0a83b8\"\u003e\u003ccode\u003e4e01d33\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/de116f90294c93ebef321c981a164a6648bbecf8\"\u003e\u003ccode\u003ede116f9\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.4-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3348\"\u003e#3348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f82ae24c82a8349f139d416ec9b494562abb6b1e\"\u003e\u003ccode\u003ef82ae24\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.3-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3341\"\u003e#3341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.4.0...v8.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=4.4.0\u0026new-version=8.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/stoa-platform/stoa/pull/1375","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoa-platform%2Fstoa/issues/1375","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1375/packages"},{"uuid":"3999761930","node_id":"PR_kwDOP_tZLs7GwnM_","number":75,"state":"open","title":"chore(deps): Bump python-gitlab from 6.5.0 to 8.0.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-27T08:10:39.000Z","updated_at":"2026-02-27T08:11:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 6.5.0 to 8.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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-gitlab/python-gitlab/commit/425d0d5787f986ebbd980f4a8f638662132aa0bf\"\u003e\u003ccode\u003e425d0d5\u003c/code\u003e\u003c/a\u003e chore: release v8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4440d0ca0f9d31acf80db7f26b567bba206f6ebc\"\u003e\u003ccode\u003e4440d0c\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e chore(precommit): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3bcc42a694afbf9f25c0b107d817342cf0379fd4\"\u003e\u003ccode\u003e3bcc42a\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3334\"\u003e#3334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e7d1fbba003a040615dd8120c553701b668285dd\"\u003e\u003ccode\u003ee7d1fbb\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency wheel to v0.46.2 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e fix: actually define project repr_attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e fix: file save start_branch as a body attribute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e chore(black): run black v26 on code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/39975d5cdae48e2f38cffa58057a4469c855e90e\"\u003e\u003ccode\u003e39975d5\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1358e4574ebc539d8c0418c889d46c0d50e64470\"\u003e\u003ccode\u003e1358e45\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sphinx to v9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=8.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/clayauld/meshtopo/pull/75","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayauld%2Fmeshtopo/issues/75","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/75/packages"},{"uuid":"3916244750","node_id":"PR_kwDOBgEVAc7Ceb1M","number":1178,"state":"open","title":"build(deps): bump the python-gitlab group with 2 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-02-09T12:54:00.000Z","updated_at":"2026-02-09T12:55:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-gitlab","update_count":2,"packages":[{"name":"python-gitlab","old_version":"7.1.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"python-gitlab","old_version":"7.1.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-gitlab group with 2 updates: [python-gitlab](https://github.com/python-gitlab/python-gitlab) and [python-gitlab[graphql]](https://github.com/python-gitlab/python-gitlab).\n\nUpdates `python-gitlab` from 7.1.0 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/425d0d5787f986ebbd980f4a8f638662132aa0bf\"\u003e\u003ccode\u003e425d0d5\u003c/code\u003e\u003c/a\u003e chore: release v8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4440d0ca0f9d31acf80db7f26b567bba206f6ebc\"\u003e\u003ccode\u003e4440d0c\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e chore(precommit): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3bcc42a694afbf9f25c0b107d817342cf0379fd4\"\u003e\u003ccode\u003e3bcc42a\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3334\"\u003e#3334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e7d1fbba003a040615dd8120c553701b668285dd\"\u003e\u003ccode\u003ee7d1fbb\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency wheel to v0.46.2 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e fix: actually define project repr_attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e fix: file save start_branch as a body attribute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e chore(black): run black v26 on code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/39975d5cdae48e2f38cffa58057a4469c855e90e\"\u003e\u003ccode\u003e39975d5\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1358e4574ebc539d8c0418c889d46c0d50e64470\"\u003e\u003ccode\u003e1358e45\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sphinx to v9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab[graphql]` from 7.1.0 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab[graphql]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab[graphql]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/425d0d5787f986ebbd980f4a8f638662132aa0bf\"\u003e\u003ccode\u003e425d0d5\u003c/code\u003e\u003c/a\u003e chore: release v8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4440d0ca0f9d31acf80db7f26b567bba206f6ebc\"\u003e\u003ccode\u003e4440d0c\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e chore(precommit): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3bcc42a694afbf9f25c0b107d817342cf0379fd4\"\u003e\u003ccode\u003e3bcc42a\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3334\"\u003e#3334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e7d1fbba003a040615dd8120c553701b668285dd\"\u003e\u003ccode\u003ee7d1fbb\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency wheel to v0.46.2 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e fix: actually define project repr_attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e fix: file save start_branch as a body attribute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e chore(black): run black v26 on code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/39975d5cdae48e2f38cffa58057a4469c855e90e\"\u003e\u003ccode\u003e39975d5\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1358e4574ebc539d8c0418c889d46c0d50e64470\"\u003e\u003ccode\u003e1358e45\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sphinx to v9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/gitlabform/gitlabform/pull/1178","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitlabform%2Fgitlabform/issues/1178","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1178/packages"},{"uuid":"3913045712","node_id":"PR_kwDOJVkqEs7CT_7Z","number":1204,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 46 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-08T16:27:16.000Z","updated_at":"2026-02-25T18:00:32.433Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":46,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.3","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.7","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.52.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.2","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.4","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.2","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.8.3","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.10.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.2` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.10.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.15.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.20` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\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.40 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 `alembic` from 1.15.2 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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tenacity` from 9.1.2 to 9.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jd/tenacity/releases\"\u003etenacity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/555\"\u003ejd/tenacity#555\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.3...9.1.4\"\u003ehttps://github.com/jd/tenacity/compare/9.1.3...9.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e9.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply formatting to num seconds in before_sleep_log by \u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping: Accept non-standard logger in helpers logging something by \u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy by \u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix syntax error in wait_chain docstring example by \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 support (EOL) by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport async sleep for sync fn-to-retry by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/551\"\u003ejd/tenacity#551\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/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.3\"\u003ehttps://github.com/jd/tenacity/compare/9.1.2...9.1.3\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/jd/tenacity/commit/d4e868d6b8368c00b5a1fad54de36c2c8c3a0fb3\"\u003e\u003ccode\u003ed4e868d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/24415ebbca6ecafdf870af06441656dd96149d1d\"\u003e\u003ccode\u003e24415eb\u003c/code\u003e\u003c/a\u003e support async sleep for sync fn (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/3bf33b44096077a0608855f6a380fd8a25fa6f26\"\u003e\u003ccode\u003e3bf33b4\u003c/code\u003e\u003c/a\u003e chore: drop Python 3.9 support (EOL) (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/7027da31d27155c7b1831e292a29575af7b5c2b1\"\u003e\u003ccode\u003e7027da3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/21ae7d0cc27069defd111e8ec81407f6d14089f6\"\u003e\u003ccode\u003e21ae7d0\u003c/code\u003e\u003c/a\u003e docs: fix syntax error in wait_chain docstring example (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/ef12c9ed1df4dec3748b1fa9304527245b041d2d\"\u003e\u003ccode\u003eef12c9e\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout in the github-actions group (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/c35a4b341ef5e553c670290fbd8835b59d5f08a3\"\u003e\u003ccode\u003ec35a4b3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/e792bbaf0cab3685c8000899cb9f61e04d6f3e23\"\u003e\u003ccode\u003ee792bba\u003c/code\u003e\u003c/a\u003e ci: fix mypy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/0f55245b8da5c4cc8385c2f692164a6ff52cd88e\"\u003e\u003ccode\u003e0f55245\u003c/code\u003e\u003c/a\u003e ci: remove reno requirements (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/815c34fec2c8d64fe2bc8a6bdd79bfb41f1938c6\"\u003e\u003ccode\u003e815c34f\u003c/code\u003e\u003c/a\u003e feat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\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/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha4...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1204/packages"},{"uuid":"3853496360","node_id":"PR_kwDOJVkqEs6_PnGE","number":1189,"state":"closed","title":"chore(deps): bump the poetry group across 3 directories with 44 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T16:37:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-25T16:25:31.000Z","updated_at":"2026-02-01T16:37:38.000Z","time_to_close":605526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":44,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.50.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.1","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.10.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.4","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.6.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.9.4","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.9.4` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.14` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 23 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 23 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\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.40 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 `alembic` from 1.15.2 to 1.18.1\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.1\u003c/h1\u003e\n\u003cp\u003eReleased: January 14, 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 issue in new plugin system where the configured logger was not\ncorrectly using the \u003ccode\u003e__name__\u003c/code\u003e token to identify the logger.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1779\"\u003e#1779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Revised the change regarding SQLAlchemy 2.1 and deprecation warnings\nrelated to \u003ccode\u003eisolate_from_table=True\u003c/code\u003e. Further developments in release 2.1\nhave revised how this parameter will be modified.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\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/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\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/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha41575\"\u003e\u003ccode\u003e@​natasha41575\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduate the \u003ccode\u003eMatchLabelKeys\u003c/code\u003e (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130463\"\u003ekubernetes/kubernetes#130463\u003c/a\u003e, \u003ca href=\"https://github.com/sanposhiho\"\u003e\u003ccode\u003e@​sanposhiho\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduated image volume sources to beta:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed \u003ccode\u003esubPath\u003c/code\u003e/\u003ccode\u003esubPathExpr\u003c/code\u003e for image volumes\u003c/li\u003e\n\u003cli\u003eAdded kubelet metrics \u003ccode\u003ekubelet_image_volume_requested_total\u003c/code\u003e, \u003ccode\u003ekubelet_image_volume_mounted_succeed_total\u003c/code\u003e and \u003ccode\u003ekubelet_image_volume_mounted_errors_total\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130135\"\u003ekubernetes/kubernetes#130135\u003c/a\u003e, \u003ca href=\"https://github.com/saschagrunert\"\u003e\u003ccode\u003e@​saschagrunert\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented a new status field, \u003ccode\u003e.status.terminatingReplicas\u003c/code\u003e, for Deployments and ReplicaSets to track terminating pods. The new field is present when the \u003ccode\u003eDeploymentPodReplacementPolicy\u003c/code\u003e feature gate is enabled. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128546\"\u003ekubernetes/kubernetes#128546\u003c/a\u003e, \u003ca href=\"https://github.com/atiratree\"\u003e\u003ccode\u003e@​atiratree\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented validation for \u003ccode\u003eNodeSelectorRequirement\u003c/code\u003e values in Kubernetes when creating pods. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128212\"\u003ekubernetes/kubernetes#128212\u003c/a\u003e, \u003ca href=\"https://github.com/AxeZhan\"\u003e\u003ccode\u003e@​AxeZhan\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved how the API server responds to \u003cstrong\u003elist\u003c/strong\u003e requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the \u003ccode\u003eStreamingCollectionEncodingToProtobuf\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129407\"\u003ekubernetes/kubernetes#129407\u003c/a\u003e, \u003ca href=\"https://github.com/serathius\"\u003e\u003ccode\u003e@​serathius\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]\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/kubernetes-client/python/commit/8f5578ee6845d33b3fb54867e2ea88349df6d07e\"\u003e\u003ccode\u003e8f5578e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2412\"\u003e#2412\u003c/a\u003e from yliaog/automated-release-of-33.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/5a367e94d1b185fb31c1683a5c4d834a467293b7\"\u003e\u003ccode\u003e5a367e9\u003c/code\u003e\u003c/a\u003e updated compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/f00d2b7a0efb46acd38b82ea3ec483357ce70a1f\"\u003e\u003ccode\u003ef00d2b7\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d712b488e5d782c547c86271edc6c77fe4ee1d0\"\u003e\u003ccode\u003e9d712b4\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/45eb341e2bd3964d166de0a3055528b62f9e440e\"\u003e\u003ccode\u003e45eb341\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/58551e416ac63b1ac0125262ccca2fbbcd23d63f\"\u003e\u003ccode\u003e58551e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2408\"\u003e#2408\u003c/a\u003e from yliaog/automated-release-of-33.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/bd6c75279449f75adc221a74e7a443d514a943e2\"\u003e\u003ccode\u003ebd6c752\u003c/code\u003e\u003c/a\u003e updated compatibility matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/de8ee89a7ce82613b650c5f3a251de79c12aff26\"\u003e\u003ccode\u003ede8ee89\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fec5585a7d9878237f7b0e3930a8c98f70a72b57\"\u003e\u003ccode\u003efec5585\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/78aee45d0be7f29d710312d879e58d5e47b671e4\"\u003e\u003ccode\u003e78aee45\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0b1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v31.0.0...v33.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ulid` from 3.0.0 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/releases\"\u003epython-ulid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.13 to the trove classifiers.\u003c/li\u003e\n\u003cli\u003eOptimze \u003ccode\u003e@property\u003c/code\u003e to \u003ccode\u003e@cached_property\u003c/code\u003e \u003ca href=\"https://github.com/WH-2099\"\u003e\u003ccode\u003e@​WH-2099\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating ULIDs within the same millisecond, the library will ensure monotonic sort order by incrementing the randomness component by 1 bit. This process is described in the \u003ca href=\"https://github.com/ulid/spec/blob/master/README.md#monotonicity\"\u003espec\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSharpen regular expression for Pydantic \u003ca href=\"https://github.com/aplhk\"\u003e\u003ccode\u003e@​aplhk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix Sphinx warnings when referencing ULID from an external project. \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/blob/main/CHANGELOG.rst\"\u003epython-ulid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e3.1.0\u003c/code\u003e_ - 2025-08-18\u003c/h2\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Added Python 3.13 to the trove classifiers.\n* Optimze ``@property`` to ``@cached_property`` `@WH-2099 \u0026lt;https://github.com/WH-2099\u0026gt;`_.\n* When generating ULIDs within the same millisecond, the library will ensure monotonic sort order by\n  incrementing the randomness component by 1 bit. This process is descrbied in the\n  `spec \u0026lt;https://github.com/ulid/spec/blob/master/README.md#monotonicity\u0026gt;`_.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Sharpen regular expression for Pydantic `@aplhk \u0026amp;lt;https://github.com/aplhk\u0026amp;gt;`_.\n* Fix Sphinx warnings when referencing ULID from an external project. `@BoboTiG \u0026amp;lt;https://github.com/BoboTiG\u0026amp;gt;`_.\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/12277593be322123b2f6ff39fbe329a3eb0b7c15\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1227759\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Always specify byteorder for Python 3.9\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/14683ee0df6e4a2966ceb32d3497bc5d3a9d7079\u0026quot;\u0026gt;\u0026lt;code\u0026gt;14683ee\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Implement same ms monotonic sort order\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/51b4ab8dace5661a1689f4bcaaefbc529d0c4632\u0026quot;\u0026gt;\u0026lt;code\u0026gt;51b4ab8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Add changelog for 3.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/c36c65f7730422591f6302a60d6a00324c7ba9a2\u0026quot;\u0026gt;\u0026lt;code\u0026gt;c36c65f\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Improve Sphinx interdoc\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/dfc3b9cee46518514d44fb34fd5d36d6f414b965\u0026quot;\u0026gt;\u0026lt;code\u0026gt;dfc3b9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Fix sphinx warnings (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/35\u0026quot;\u0026gt;#35\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/59cd43d0d5aa3a8bf509f8da516d0c27597d020b\u0026quot;\u0026gt;\u0026lt;code\u0026gt;59cd43d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Add uv and freezegun dependencies\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9e56decb2b16ec8d6ebaccdc200de264e69f96e3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9e56dec\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Optimize regex pattern\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9b3168bed2938e7de4a4d4565aec62a3eab7f5c5\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9b3168b\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update tooling, type checking and linting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/929ef8ac34ef953c980490dd875b3100fc4351aa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;929ef8a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Move dev dependences into pyproject.toml\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/a1434e82a854f1796ba4ad5da5a095789038f506\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a1434e8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; optimize property to cached_property (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/37\u0026quot;\u0026gt;#37\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/compare/3.0.0...3.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `python-gitlab` from 5.6.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.2.6 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsyocpg 3.3.3 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to change loaders using \u003ccode\u003e~adapt.AdaptersMap.register_loader()\u003c/code\u003e on\n\u003ccode\u003eCursor.adapters\u003c/code\u003e after a query result has been already returned\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/psycopg/commit/bc9e7bde14acd080c7597185a7904a4bc246ed0e\"\u003e\u003ccode\u003ebc9e7bd\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/3bcabb4592c6352aedb23f315dbd81326e9fbd14\"\u003e\u003ccode\u003e3bcabb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1231\"\u003e#1231\u003c/a\u003e from noirbee/fix/1230-adapter-get-dumper-race-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/08bfe006ae0d9dea00b69f6a6df8497a0c0e4965\"\u003e\u003ccode\u003e08bfe00\u003c/code\u003e\u003c/a\u003e fix(adapters): avoid race condition when replacing class name with itself\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7be710e7cbe42c94288efeda0bb5a87ad9659f03\"\u003e\u003ccode\u003e7be710e\u003c/code\u003e\u003c/a\u003e fix: mark external libpq C functions as noexcept nogil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6a24300ad2392e502a7c9d3c244ead6852890d90\"\u003e\u003ccode\u003e6a24300\u003c/code\u003e\u003c/a\u003e docs: larger font for 3.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/5a60a1e6b2394e6d3ccdb1d08cfd24d6fbac3d78\"\u003e\u003ccode\u003e5a60a1e\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.2.6...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1189/packages"},{"uuid":"3801593197","node_id":"PR_kwDOJVkqEs68j0tv","number":1164,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 45 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-01-11T16:39:23.000Z","updated_at":"2026-01-18T16:46:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":45,"packages":[{"name":"sanic","old_version":"24.12.0","new_version":"25.12.0","repository_url":"https://github.com/sanic-org/sanic"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.52.2","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.1","new_version":"4.2.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.49.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.0","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.9.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.14","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.3","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.5.1","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.2","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.8.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"7.0.2","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.2.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.2` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.8.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `7.0.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.11` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\n\nUpdates `sanic` from 24.12.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sanic-org/sanic/releases\"\u003esanic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate baseline for bandit to remove false positives by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3084\"\u003esanic-org/sanic#3084\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse secrets for generating unique ping payloads by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3091\"\u003esanic-org/sanic#3091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd some typing and fix some tests by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3094\"\u003esanic-org/sanic#3094\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix race condition in worker restart causing spawn failure by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in close_if_idle() when _http is not initialized by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3085\"\u003esanic-org/sanic#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typing for parameters of constructor of \u003ccode\u003eWorkerManager\u003c/code\u003e by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3083\"\u003esanic-org/sanic#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate str_to_bool function to include 'nope' as a valid false value by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd DetailedConverter for advanced environment variable conversion by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3079\"\u003esanic-org/sanic#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WorkerManager.kill on Windows by \u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esilent on RuntimeError when write_eof by \u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSingle letter typo fix for request.md documentation by \u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed incorrect links throughout the documentation by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange the log type to debug by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3064\"\u003esanic-org/sanic#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd correct path for Contribution guidelines by \u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link in website by \u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 'how we built sanic' sidebar link by \u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes sanic_ext - openapi component documentation by \u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate required Python to \u0026gt;=3.9 by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3095\"\u003esanic-org/sanic#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add automatic charset=UTF-8 to text content types by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3071\"\u003esanic-org/sanic#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade tracerite to latest by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3101\"\u003esanic-org/sanic#3101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter server error messaging by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3102\"\u003esanic-org/sanic#3102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTesting improvements by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3107\"\u003esanic-org/sanic#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove to 2-stage coverage check by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3108\"\u003esanic-org/sanic#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing bad term cleanup at exit by \u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows 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/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd daemon mode to Sanic CLI  by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3110\"\u003esanic-org/sanic#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove v3.9 and add v3.14 by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3115\"\u003esanic-org/sanic#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn task when creating a task by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3114\"\u003esanic-org/sanic#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix static file serving for directories with CJK characters by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3119\"\u003esanic-org/sanic#3119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicit symlink params for static files/dirs by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3117\"\u003esanic-org/sanic#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect LOG_EXTRA in all cases by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3120\"\u003esanic-org/sanic#3120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect KEEP_ALIVE config by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3121\"\u003esanic-org/sanic#3121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck state in shutdown for handling uvloop double kill by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3122\"\u003esanic-org/sanic#3122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for v25.12 release by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3124\"\u003esanic-org/sanic#3124\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/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\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/sanic-org/sanic/commit/785d77f8fe208576a48d339bd81d866021154092\"\u003e\u003ccode\u003e785d77f\u003c/code\u003e\u003c/a\u003e Prepare for v25.12 release (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3124\"\u003e#3124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/dc0939e682eeaace8b2832f634999f3390b1d5d1\"\u003e\u003ccode\u003edc0939e\u003c/code\u003e\u003c/a\u003e Check state in shutdown for handling uvloop double kill (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/a64dc641a8e4ad777a4602d2bdec53d736901472\"\u003e\u003ccode\u003ea64dc64\u003c/code\u003e\u003c/a\u003e Respect KEEP_ALIVE config (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/7c9b8461c0b4d300c15fe66b6f9b5d031aee59eb\"\u003e\u003ccode\u003e7c9b846\u003c/code\u003e\u003c/a\u003e Respect LOG_EXTRA in all cases (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3120\"\u003e#3120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/9aef932b843abff359f7a06ffc75dd45bab99e79\"\u003e\u003ccode\u003e9aef932\u003c/code\u003e\u003c/a\u003e Explicit symlink params for static files/dirs (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/41f2b38041e4bacc56aac1d3b99131ae183c27e8\"\u003e\u003ccode\u003e41f2b38\u003c/code\u003e\u003c/a\u003e Fix static file serving for directories with CJK characters (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/82d8cc4c98d5dd2cd807279b61615acaaf06d5bb\"\u003e\u003ccode\u003e82d8cc4\u003c/code\u003e\u003c/a\u003e Return task when creating a task (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3114\"\u003e#3114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/002c8c2d8a1c338a93b5b666514bdbef4ec6d1bc\"\u003e\u003ccode\u003e002c8c2\u003c/code\u003e\u003c/a\u003e Remove v3.9 and add v3.14 (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3115\"\u003e#3115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/3ae8f8ad7f4c12a75f67982b9456999d935bf5c0\"\u003e\u003ccode\u003e3ae8f8a\u003c/code\u003e\u003c/a\u003e Add daemon mode to Sanic CLI  (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/8ac64685c72395da1862a90e18883c94e71562d9\"\u003e\u003ccode\u003e8ac6468\u003c/code\u003e\u003c/a\u003e Bump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sanic-org/sanic/compare/v24.12.0...v25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.28.5 to 0.52.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\u003e\n\u003cstrong\u003eAfter:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingStatusUnionTitle(BaseModel):\n    __root__: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle\n    ) = Field(..., title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.2\"\u003e0.52.2\u003c/a\u003e - 2026-01-05\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.1\"\u003e0.52.1\u003c/a\u003e - 2026-01-03\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.0\"\u003e0.52.0\u003c/a\u003e - 2026-01-02\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\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/koxudaxi/datamodel-code-generator/commit/794e02bdd8ed89fc2030d4b323df8480edae0335\"\u003e\u003ccode\u003e794e02b\u003c/code\u003e\u003c/a\u003e Fix URL port handling in get_url_path_parts (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/61c08d6fa777f1560e0c55151ae1c42037c469cb\"\u003e\u003ccode\u003e61c08d6\u003c/code\u003e\u003c/a\u003e Migrate from pyright to ty type checker (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2928\"\u003e#2928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/ee08fff3867457b6a09c0ca4fbfbd23ee128617e\"\u003e\u003ccode\u003eee08fff\u003c/code\u003e\u003c/a\u003e Fix release-draft workflow to use pull_request_target and increase max_turns ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5acb17838e7fb8047f36a1bebcdfb2f432dd3b16\"\u003e\u003ccode\u003e5acb178\u003c/code\u003e\u003c/a\u003e Add TypedDict closed and extra_items support (PEP 728) (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/54c3ed9fcc073f79b5ffd2366cdc7f97f99ae4d2\"\u003e\u003ccode\u003e54c3ed9\u003c/code\u003e\u003c/a\u003e fix: Handle class name prefix correctly in GraphQL parser (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/58e73ed8740d589623647008bb1fe230bac1aeda\"\u003e\u003ccode\u003e58e73ed\u003c/code\u003e\u003c/a\u003e Add \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/960f7f932b253e3f78771ff907409a1cb21d73d6\"\u003e\u003ccode\u003e960f7f9\u003c/code\u003e\u003c/a\u003e Add support for multiple base classes in base_class_map and customBasePath (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1b931d5f81e81f3f93582d8aac70e75ab1708a5d\"\u003e\u003ccode\u003e1b931d5\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.52.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/361fb5aa6a63ae570132daee0c587e633f62da6b\"\u003e\u003ccode\u003e361fb5a\u003c/code\u003e\u003c/a\u003e Add deprecation warning for Pydantic v2 without --use-annotated (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/69c51fdbbb60dc4c16d2a38914ab31145d2b2b7e\"\u003e\u003ccode\u003e69c51fd\u003c/code\u003e\u003c/a\u003e Add deprecated field support for Pydantic v2 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.28.5...0.52.2\"\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.40 to 2.0.45\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.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\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 calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\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 in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\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 Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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 `alembic` from 1.15.2 to 1.18.0\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.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\n\u003ccode\u003ealembic-utils\u003c/code\u003e, which continue to work as before; however, such add-ons\nhave the option to provide plugin entrypoints going forward.\u003c/p\u003e\n\u003cp\u003eAs part of this change, Alembic's autogenerate compare functionality is\nreorganized into a series of internal plugins under the\n\u003ccode\u003ealembic.autogenerate\u003c/code\u003e namespace, which may be individually or\ncollectively identified for inclusion and/or exclusion within the\n\u003ccode\u003eEnvironmentContext.configure()\u003c/code\u003e call using a new parameter\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e. This\nparameter is also where third party comparison plugins may also be\nindicated.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ealembic.plugins.toplevel\u003c/code\u003e for complete documentation on\nthe new \u003ccode\u003ePlugin\u003c/code\u003e class as well as autogenerate-specific usage\ninstructions.\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/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\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/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomple...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1164","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1164","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1164/packages"},{"uuid":"3778660126","node_id":"PR_kwDOQsrcR867ZXsQ","number":52,"state":"closed","title":"chore(deps): Bump the python-dependencies 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-01-05T03:01:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-04T01:28:19.000Z","updated_at":"2026-01-05T03:01:35.000Z","time_to_close":91994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-dependencies","update_count":14,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.31.0","new_version":"0.40.0"},{"name":"python-gitlab","old_version":"4.9.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"sqlalchemy","old_version":"2.0.35","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.5.2","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"alembic","old_version":"1.13.1","new_version":"1.17.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.128.0` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.31.0` | `0.40.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.9.0` | `7.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.35` | `2.0.45` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.2` | `2.12.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.21` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `46.0.3` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.1` | `1.17.2` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.31.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.31.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab` from 4.9.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.9.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.35 to 2.0.45\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.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\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 calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\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 in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\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 Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.9.2 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.5.2 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.5.2...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.12 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003eKludex/python-multipart#142\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/Mr-Sunglasses\"\u003e\u003ccode\u003e@​Mr-Sunglasses\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/185\"\u003eKludex/python-multipart#185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003eKludex/python-multipart#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003eKludex/python-multipart#189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name by \u003ca href=\"https://github.com/defnull\"\u003e\u003ccode\u003e@​defnull\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003eKludex/python-multipart#182\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003eKludex/python-multipart#177\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.17 (2024-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003e#182\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.16 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003e#177\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.15 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.14 (2024-10-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix import scheme for \u003ccode\u003emultipart\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/168\"\u003e#168\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.13 (2024-10-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename import to \u003ccode\u003epython_multipart\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/166\"\u003e#166\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/...\n\n_Description has been truncated_","html_url":"https://github.com/MrZoller/mirror-maestro/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrZoller%2Fmirror-maestro/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"},{"uuid":"3775182382","node_id":"PR_kwDOQsrcR867OkBQ","number":43,"state":"closed","title":"chore(deps): Bump the python-dependencies group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-04T01:27:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T20:53:29.000Z","updated_at":"2026-01-04T01:27:36.000Z","time_to_close":189246,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-dependencies","update_count":13,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.31.0","new_version":"0.40.0"},{"name":"python-gitlab","old_version":"4.9.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"sqlalchemy","old_version":"2.0.35","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.5.2","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.128.0` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.31.0` | `0.40.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.9.0` | `7.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.35` | `2.0.45` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.2` | `2.12.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.21` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `46.0.3` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.31.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.31.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab` from 4.9.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.9.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.35 to 2.0.45\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.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\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 calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\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 in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\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 Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.9.2 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.5.2 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.5.2...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.12 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003eKludex/python-multipart#142\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/Mr-Sunglasses\"\u003e\u003ccode\u003e@​Mr-Sunglasses\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/185\"\u003eKludex/python-multipart#185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003eKludex/python-multipart#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003eKludex/python-multipart#189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name by \u003ca href=\"https://github.com/defnull\"\u003e\u003ccode\u003e@​defnull\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003eKludex/python-multipart#182\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003eKludex/python-multipart#177\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.17 (2024-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003e#182\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.16 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003e#177\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.15 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.14 (2024-10-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix import scheme for \u003ccode\u003emultipart\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/168\"\u003e#168\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.13 (2024-10-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename import to \u003ccode\u003epython_multipart\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/166\"\u003e#166\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6113e750971918a51f79c3bb2585e95ed1c53245\"\u003e\u003ccode\u003e6113e75\u003c/code\u003e\u003c/a\u003e Bump the...\n\n_Description has been truncated_","html_url":"https://github.com/MrZoller/mirror-maestro/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrZoller%2Fmirror-maestro/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"},{"uuid":"3774465043","node_id":"PR_kwDOAr_oDM67MPUI","number":543,"state":"closed","title":"Bump python-gitlab from 6.5.0 to 7.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-20T22:42:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T11:01:02.000Z","updated_at":"2026-02-20T22:42:44.000Z","time_to_close":4362100,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 6.5.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/CLARIAH/grlc/pull/543","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CLARIAH%2Fgrlc/issues/543","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/543/packages"},{"uuid":"3773993782","node_id":"PR_kwDOIibu3867Kvc3","number":2,"state":"closed","title":"Bump the all-pip-packages group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T17:54:12.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T01:25:59.000Z","updated_at":"2026-01-05T17:54:13.000Z","time_to_close":404893,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-pip-packages","update_count":5,"packages":[{"name":"python-gnupg","old_version":"0.5.5","new_version":"0.5.6","repository_url":"https://github.com/vsajip/python-gnupg"},{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"boto3","old_version":"1.42.1","new_version":"1.42.19","repository_url":"https://github.com/boto/boto3"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-pip-packages group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-gnupg](https://github.com/vsajip/python-gnupg) | `0.5.5` | `0.5.6` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `7.0.0` | `7.1.0` |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.1` | `1.42.19` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n\n\nUpdates `python-gnupg` from 0.5.5 to 0.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vsajip/python-gnupg/releases\"\u003epython-gnupg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eEnhancement and bug-fix release 0.5.6\u003c/h2\u003e\n\u003cp\u003eThis is an enhancement and bug-fix release, and all users are encouraged to upgrade.\u003c/p\u003e\n\u003cp\u003eBrief summary:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure capability, fingerprint and keygrip are added to subkey_info.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet username in the result when Verify uses a signing key that has expired or been revoked. Thanks to Steven Galgano for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release has been signed with my code signing key:\u003c/p\u003e\n\u003cp\u003eVinay Sajip (CODE SIGNING KEY) \u0026lt;vinay_sajip at yahoo.co.uk\u0026gt;\nFingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86\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/vsajip/python-gnupg/commit/54e9ca0f80f5a0d0b4252e13d5c431f3f5f40c71\"\u003e\u003ccode\u003e54e9ca0\u003c/code\u003e\u003c/a\u003e Changes for 0.5.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8825037344b03473595e694e01a1e0fa5e74023f\"\u003e\u003ccode\u003e8825037\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/909cf606f07097feb5316c265f0108a4c753f9a5\"\u003e\u003ccode\u003e909cf60\u003c/code\u003e\u003c/a\u003e Remove Travis CI and AppVeyor config (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/f0bfa1acb7000cfff3bfdec5d9bff15299c364d3\"\u003e\u003ccode\u003ef0bfa1a\u003c/code\u003e\u003c/a\u003e Drop redundant \u003ccode\u003ewheel\u003c/code\u003e from PEP 517 build deps (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/9b0399b4684a1f8d9e763c99c94cd9baed5ebc34\"\u003e\u003ccode\u003e9b0399b\u003c/code\u003e\u003c/a\u003e Fix typo: spell decrypted_data correctly in the documentation. (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/fcedea7ac922cf5113c28beff16e59340fa4731c\"\u003e\u003ccode\u003efcedea7\u003c/code\u003e\u003c/a\u003e Added capability to subkey_info, reformatted code.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/eca04eb5c9f5d251bb32a183427acb8fbe564102\"\u003e\u003ccode\u003eeca04eb\u003c/code\u003e\u003c/a\u003e Set username when Verify uses a signing key that has expired or been (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/acfa89869940b81a96c6eb1e475c1c4f645ae879\"\u003e\u003ccode\u003eacfa898\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure fingerprint and keygrip are added to subkey_info.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8148db43edf62ca8310000f0aaae138784c0e51b\"\u003e\u003ccode\u003e8148db4\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/2e829849129d4789b8877fe621349b09ca5b29cd\"\u003e\u003ccode\u003e2e82984\u003c/code\u003e\u003c/a\u003e Added tag 0.5.5 for changeset 1b77f5b12ad7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vsajip/python-gnupg/compare/0.5.5...0.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.11.0 to 25.12.0\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\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.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.1 to 1.42.19\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/98bf6652e6ae1c14f25e4a2752d49b8279222702\"\u003e\u003ccode\u003e98bf665\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.19'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a86b3cf9e203e89dd4f87a0a5b2db0bf0fa73c11\"\u003e\u003ccode\u003ea86b3cf\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a96980b209925aa1e51355309978ac87f85c2cb9\"\u003e\u003ccode\u003ea96980b\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/3a1085f1892c22c9596694c9c7072308fb30002c\"\u003e\u003ccode\u003e3a1085f\u003c/code\u003e\u003c/a\u003e Remove elastictranscoder from documentation (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/83130e5c5b393c9c3faf64d252cf3c90ce7fe597\"\u003e\u003ccode\u003e83130e5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.18'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2ad1b19890c5ef492e3103bdd08915852d992675\"\u003e\u003ccode\u003e2ad1b19\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.18' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/56a53e6a42b1bf071b00a0bd240aa1a0e8f89924\"\u003e\u003ccode\u003e56a53e6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/960d57e96fde8e1dfe7d9402bb87f313cbb2f559\"\u003e\u003ccode\u003e960d57e\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/9a88f847b55bca7702fec6d3f01aee9933dc1910\"\u003e\u003ccode\u003e9a88f84\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.17'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c302093c8a68dec9517437a225ec37d89a85eba8\"\u003e\u003ccode\u003ec302093\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.17' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.1...1.42.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.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.19.0...v1.19.1\"\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/actions-marketplace-validations/JuliaRegistries_TagBot/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions-marketplace-validations%2FJuliaRegistries_TagBot/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"},{"uuid":"3767493267","node_id":"PR_kwDOFZdLEM661H7D","number":147,"state":"closed","title":"Bump python-gitlab from 5.6.0 to 7.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-28T14:03:21.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-29T14:02:35.000Z","updated_at":"2026-01-28T14:03:23.000Z","time_to_close":2592046,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 5.6.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=5.6.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/uva/GLASS-gitops-updater/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/uva%2FGLASS-gitops-updater/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"},{"uuid":"3767110468","node_id":"PR_kwDOBgEVAc66z28S","number":1145,"state":"open","title":"build(deps): bump the python-gitlab group with 2 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":"2025-12-29T11:02:20.000Z","updated_at":"2026-01-03T15:41:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-gitlab","update_count":2,"packages":[{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-gitlab group with 2 updates: [python-gitlab](https://github.com/python-gitlab/python-gitlab) and [python-gitlab[graphql]](https://github.com/python-gitlab/python-gitlab).\n\nUpdates `python-gitlab` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab[graphql]` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab[graphql]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab[graphql]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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/gitlabform/gitlabform/pull/1145","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitlabform%2Fgitlabform/issues/1145","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1145/packages"},{"uuid":"3766463988","node_id":"PR_kwDOQkZ5D866xvDg","number":12,"state":"open","title":"deps: bump python-gitlab from 7.0.0 to 7.1.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-29T05:38:57.000Z","updated_at":"2025-12-29T05:38:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 7.0.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=7.0.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/Joeri-Abbo/git-webhook-scanner/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joeri-Abbo%2Fgit-webhook-scanner/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"3766424709","node_id":"PR_kwDOL0ejWM66xm0B","number":468,"state":"closed","title":"Bump python-gitlab from 7.0.0 to 7.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-30T04:51:46.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-29T05:08:07.000Z","updated_at":"2025-12-30T04:51:48.000Z","time_to_close":85419,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 7.0.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=7.0.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/OpenSpeleo/SpeleoDB/pull/468","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSpeleo%2FSpeleoDB/issues/468","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/468/packages"},{"uuid":"3766131492","node_id":"PR_kwDOFQcaxs66wrMN","number":2517,"state":"open","title":"Bump python-gitlab from 2.10.1 to 7.1.0 in /dependencies/python","user":"dependabot[bot]","labels":["dependencies","python","O: stale 🤖"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-29T00:05:47.000Z","updated_at":"2026-03-05T00:02:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"2.10.1","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/dependencies/python","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 2.10.1 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v2.10.1...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=2.10.1\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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 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\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/23andMe/super-linter/pull/2517","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/23andMe%2Fsuper-linter/issues/2517","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2517/packages"},{"uuid":"3705559591","node_id":"PR_kwDOQQZ-pM63orXy","number":1,"state":"open","title":"chore(deps): Bump python-gitlab from 5.6.0 to 7.0.0 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-08T09:50:16.000Z","updated_at":"2025-12-08T09:50:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 5.6.0 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0\"\u003ev6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e: Update actions/setup-python action to v6 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/89cdb788feec5fb995c7de6fec6afd83844c2618\"\u003e\u003ccode\u003e89cdb78\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement missing arguments in users 'list'\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Sort 'user list' arguments against documentation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.0 (2025-08-28)\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/python-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f78a8731a7c51b773e90276f765309324403a080\"\u003e\u003ccode\u003ef78a873\u003c/code\u003e\u003c/a\u003e chore: release v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e docs(pull_mirror): fix incorrect start() method usage example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=5.6.0\u0026new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/chinmay404/climate_kic_AI_NotebookLLM/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chinmay404%2Fclimate_kic_AI_NotebookLLM/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"3704855465","node_id":"PR_kwDOCBOG5c63mSwT","number":2069,"state":"closed","title":"chore: bump the python group across 2 directories with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-12T06:26:32.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T06:28:32.000Z","updated_at":"2025-12-12T06:26:34.000Z","time_to_close":345480,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: bump","group_name":"python","update_count":28,"packages":[{"name":"python-gitlab","old_version":"4.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"kubernetes","old_version":"30.1.0","new_version":"34.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"gunicorn","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"pyyaml","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.3.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"sentry-sdk","old_version":"2.5.1","new_version":"2.47.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"gevent","old_version":"24.2.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"},{"name":"apispec-webframeworks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/marshmallow-code/apispec-webframeworks"},{"name":"webargs","old_version":"8.4.0","new_version":"8.7.1","repository_url":"https://github.com/marshmallow-code/webargs"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"marshmallow","old_version":"3.21.3","new_version":"4.1.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"apispec","old_version":"6.6.1","new_version":"6.9.0","repository_url":"https://github.com/marshmallow-code/apispec"},{"name":"importlib-metadata","old_version":"7.1.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"dataconf","old_version":"3.2.0","new_version":"3.6.0","repository_url":"https://github.com/zifeo/dataconf"},{"name":"python-ulid","old_version":"2.7.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"cryptography","old_version":"42.0.8","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"chartpress","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/jupyterhub/chartpress"},{"name":"pytest","old_version":"8.2.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"3.7.1","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-cov","old_version":"5.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"semver","old_version":"3.0.2","new_version":"3.0.4","repository_url":"https://github.com/python-semver/python-semver"},{"name":"ruff","old_version":"0.4.9","new_version":"0.14.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"responses","old_version":"0.25.3","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.5.0` | `7.0.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `34.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.1` | `6.0.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.3.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.47.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [apispec-webframeworks](https://github.com/marshmallow-code/apispec-webframeworks) | `1.1.0` | `1.2.0` |\n| [webargs](https://github.com/marshmallow-code/webargs) | `8.4.0` | `8.7.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.21.3` | `4.1.1` |\n| [apispec](https://github.com/marshmallow-code/apispec) | `6.6.1` | `6.9.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.1.0` | `8.7.0` |\n| [dataconf](https://github.com/zifeo/dataconf) | `3.2.0` | `3.6.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `2.7.0` | `3.1.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.8` | `46.0.3` |\n| [chartpress](https://github.com/jupyterhub/chartpress) | `2.2.0` | `2.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.2.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.7.1` | `4.5.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `5.0.0` | `7.0.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [semver](https://github.com/python-semver/python-semver) | `3.0.2` | `3.0.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.8` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.25.8` |\n\nBumps the python group with 6 updates in the /git_services directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.47.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.8` |\n| [renku](https://github.com/swissdatasciencecenter/renku-python) | `2.9.2` | `2.9.4` |\n\n\nUpdates `python-gitlab` from 4.5.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0\"\u003ev6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e: Update actions/setup-python action to v6 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/89cdb788feec5fb995c7de6fec6afd83844c2618\"\u003e\u003ccode\u003e89cdb78\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement missing arguments in users 'list'\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Sort 'user list' arguments against documentation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.0 (2025-08-28)\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/python-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f78a8731a7c51b773e90276f765309324403a080\"\u003e\u003ccode\u003ef78a873\u003c/code\u003e\u003c/a\u003e chore: release v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e docs(pull_mirror): fix incorrect start() method usage example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.0.3 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.1/\"\u003ehttps://pypi.org/project/Flask/3.1.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/flask/milestone/36?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/36?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. GHSA-4grg-w6v8-c28g\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5645\"\u003e#5645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands are shown. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5673\"\u003e#5673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return \u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier for Quart. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5659\"\u003e#5659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.0/\"\u003ehttps://pypi.org/project/Flask/3.1.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/33?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/33?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5623\"\u003e#5623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases. Werkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5624\"\u003e#5624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5633\"\u003e#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option responses. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5496\"\u003e#5496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and \u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when opening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5504\"\u003e#5504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only through the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added \u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation about resource limits to the security page. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5625\"\u003e#5625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the \u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5472\"\u003e#5472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files. \u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless \u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5628\"\u003e#5628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old secret keys that can still be used for unsigning. Extensions will need to add support. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5621\"\u003e#5621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how setting \u003ccode\u003ehost_matching=True\u003c/code\u003e or \u003ccode\u003esubdomain_matching=False\u003c/code\u003e interacts with \u003ccode\u003eSERVER_NAME\u003c/code\u003e. Setting \u003ccode\u003eSERVER_NAME\u003c/code\u003e no longer restricts requests to only that domain. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5553\"\u003e#5553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.trusted_hosts\u003c/code\u003e is checked during routing, and can be set through the \u003ccode\u003eTRUSTED_HOSTS\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5636\"\u003e#5636\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via\n\u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. :ghsa:\u003ccode\u003e4grg-w6v8-c28g\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e5645\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands\nare shown. :issue:\u003ccode\u003e5673\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return\n\u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier\nfor Quart. :pr:\u003ccode\u003e5659\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e5623\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases.\nWerkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. :pr:\u003ccode\u003e5624,5633\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option\nresponses. :pr:\u003ccode\u003e5496\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and\n\u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when\nopening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. :issue:\u003ccode\u003e5504\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only\nthrough the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added\n\u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation\nabout resource limits to the security page. :issue:\u003ccode\u003e5625\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the\n\u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. :issue:\u003ccode\u003e5472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files.\n\u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless\n\u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. :issue:\u003ccode\u003e5628\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old\nsecret keys that can still be used for unsigning. Extensions will need to\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.0.3...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 30.1.0 to 34.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0.zip\ncd client-python-v34.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0b1.zip\ncd client-python-v34.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0a1.zip\ncd client-python-v34.1.0a1\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/kubernetes-client/python/blob/master/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev34.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch1\u003ev34.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eomitempty\u003c/code\u003e and \u003ccode\u003eopt\u003c/code\u003e tag to the API \u003ccode\u003ev1beta2\u003c/code\u003e AdminAccess type in the \u003ccode\u003eDeviceRequestAllocationResult\u003c/code\u003e struct. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132338\"\u003ekubernetes/kubernetes#132338\u003c/a\u003e, \u003ca href=\"https://github.com/PatrickLaabs\"\u003e\u003ccode\u003e@​PatrickLaabs\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003eruntime.ApplyConfiguration\u003c/code\u003e interface implemented by all generated apply configuration types. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132194\"\u003ekubernetes/kubernetes#132194\u003c/a\u003e, \u003ca href=\"https://github.com/alvaroaleman\"\u003e\u003ccode\u003e@​alvaroaleman\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Instrumentation]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130387\"\u003ekubernetes/kubernetes#130387\u003c/a\u003e, \u003ca href=\"https://github.com/shiya0705\"\u003e\u003ccode\u003e@​shiya0705\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a mechanism for configurable container restarts: \u003cem\u003econtainer-level restart rules\u003c/em\u003e. This was an alpha feature behind the \u003ccode\u003eContainerRestartRules\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132642\"\u003ekubernetes/kubernetes#132642\u003c/a\u003e, \u003ca href=\"https://github.com/yuanwang04\"\u003e\u003ccode\u003e@​yuanwang04\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003eFileKeyRef\u003c/code\u003e field to containers, allowing them to load variables from files by setting this field.\u003c/p\u003e\n\u003cp\u003eIntroduced the \u003ccode\u003eEnvFiles\u003c/code\u003e feature gate to govern activation of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132626\"\u003ekubernetes/kubernetes#132626\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded driver-owned fields in \u003ccode\u003eResourceSlice\u003c/code\u003e to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded user-owned fields in \u003ccode\u003eResourceClaim\u003c/code\u003e to specify resource requirements against each device capacity.\u003c/li\u003e\n\u003cli\u003eAdded scheduler-owned field in \u003ccode\u003eResourceClaim.Status\u003c/code\u003e to specify how much device capacity is reserved for a specific request.\u003c/li\u003e\n\u003cli\u003eAdded an additional identifier to \u003ccode\u003eResourceClaim.Status\u003c/code\u003e for the device supports multiple allocations.\u003c/li\u003e\n\u003cli\u003eAdded a new constraint type to enforce uniqueness of specified attributes across all allocated devices. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132522\"\u003ekubernetes/kubernetes#132522\u003c/a\u003e, \u003ca href=\"https://github.com/sunya-ch\"\u003e\u003ccode\u003e@​sunya-ch\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded new optional APIs in \u003ccode\u003eResouceSlice.Basic\u003c/code\u003e and \u003ccode\u003eResourceClaim.Status.AllocatedDeviceStatus\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130160\"\u003ekubernetes/kubernetes#130160\u003c/a\u003e, \u003ca href=\"https://github.com/KobayashiD27\"\u003e\u003ccode\u003e@​KobayashiD27\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for specifying \u003ccode\u003econtrolplane\u003c/code\u003e or \u003ccode\u003ecluster\u003c/code\u003e egress selectors in JWT authenticators via the \u003ccode\u003eissuer.egressSelectorType\u003c/code\u003e field in the \u003ccode\u003eAuthenticationConfiguration.jwt\u003c/code\u003e array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the \u003ccode\u003eStructuredAuthenticationConfigurationEgressSelector\u003c/code\u003e beta feature gate (enabled by default). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132768\"\u003ekubernetes/kubernetes#132768\u003c/a\u003e, \u003ca href=\"https://github.com/enj\"\u003e\u003ccode\u003e@​enj\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the \u003ccode\u003epod.status.containerStatuses.allocatedResourcesStatus\u003c/code\u003e field. This required the DRA plugin to implement the new v1alpha1 \u003ccode\u003eNodeHealth\u003c/code\u003e gRPC service. This feature was controlled by the \u003ccode\u003eResourceHealthStatus\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130606\"\u003ekubernetes/kubernetes#130606\u003c/a\u003e, \u003ca href=\"https://github.com/Jpsassine\"\u003e\u003ccode\u003e@​Jpsassine\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132771\"\u003ekubernetes/kubernetes#132771\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded validation to reject Pods using the \u003ccode\u003ePodLevelResources\u003c/code\u003e feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a \u003ccode\u003ePod.spec.os.name\u003c/code\u003e targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133046\"\u003ekubernetes/kubernetes#133046\u003c/a\u003e, \u003ca href=\"https://github.com/toVersus\"\u003e\u003ccode\u003e@​toVersus\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded warnings when creating headless service with set \u003ccode\u003eloadBalancerIP\u003c/code\u003e,\u003ccode\u003eexternalIPs\u003c/code\u003e and/or \u003ccode\u003eSessionAffinity\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132214\"\u003ekubernetes/kubernetes#132214\u003c/a\u003e, \u003ca href=\"https://github.com/Peac36\"\u003e\u003ccode\u003e@​Peac36\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed \u003ccode\u003epvc.spec.VolumeAttributesClassName\u003c/code\u003e to change from non-nil to nil. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132106\"\u003ekubernetes/kubernetes#132106\u003c/a\u003e, \u003ca href=\"https://github.com/AndrewSirenko\"\u003e\u003ccode\u003e@​AndrewSirenko\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed setting the \u003ccode\u003ehostnameOverride\u003c/code\u003e field in \u003ccode\u003ePodSpec\u003c/code\u003e to specify any RFC 1123 DNS subdomain as the pod's hostname. The \u003ccode\u003eHostnameOverride\u003c/code\u003e feature gate was introduced to control enablement of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132558\"\u003ekubernetes/kubernetes#132558\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Network, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic for \u003ccode\u003eEviction Manager\u003c/code\u003e helper functions. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132277\"\u003ekubernetes/kubernetes#132277\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131089\"\u003ekubernetes/kubernetes#131089\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrected the documentation to clarify that \u003ccode\u003epodSelector\u003c/code\u003e is optional and described its default behavior. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131354\"\u003ekubernetes/kubernetes#131354\u003c/a\u003e, \u003ca href=\"https://github.com/tomoish\"\u003e\u003ccode\u003e@​tomoish\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\nbefore updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u0026lt; 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u0026gt;= 1.32. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132000\"\u003ekubernetes/kubernetes#132000\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting with Kubernetes 1.34, the alpha-level \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e label has been updated to \u003ccode\u003eresource.kubernetes.io/admin-access\u003c/code\u003e. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e when no downgrade is going to happen anymore. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131996\"\u003ekubernetes/kubernetes#131996\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's \u003ccode\u003eFilterTimeout\u003c/code\u003e. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u0026lt;= 1.33. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132033\"\u003ekubernetes/kubernetes#132033\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130593\"\u003ekubernetes/kubernetes#130593\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes  \u0026gt;= 1.32 use the v1beta1 API and continue to be supported. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132574\"\u003ekubernetes/kubernetes#132574\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated \u003ccode\u003eStreamingConnectionIdleTimeout\u003c/code\u003e field of the kubelet config. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131992\"\u003ekubernetes/kubernetes#131992\u003c/a\u003e, \u003ca href=\"https://github.com/lalitc375\"\u003e\u003ccode\u003e@​lalitc375\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the \u003cem\u003estructured parameters\u003c/em\u003e flavor of DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132706\"\u003ekubernetes/kubernetes#132706\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnabled kube-apiserver support for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e and \u003ccode\u003ePodCertificate\u003c/code\u003e projected volumes (behind the \u003ccode\u003ePodCertificateRequest\u003c/code\u003e feature gate). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128010\"\u003ekubernetes/kubernetes#128010\u003c/a\u003e, \u003ca href=\"https://github.com/ahmedtd\"\u003e\u003ccode\u003e@​ahmedtd\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended resources backed by DRA feature allowed cluster operator to specify \u003ccode\u003eextendedResourceName\u003c/code\u003e in \u003ccode\u003eDeviceClass\u003c/code\u003e, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eNodeResourcesFit\u003c/code\u003e plugin scoring didn't work for extended resources backed by DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130653\"\u003ekubernetes/kubernetes#130653\u003c/a\u003e, \u003ca href=\"https://github.com/yliaog\"\u003e\u003ccode\u003e@​yliaog\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132040\"\u003ekubernetes/kubernetes#132040\u003c/a\u003e, \u003ca href=\"https://github.com/avrittrohwer\"\u003e\u003ccode\u003e@​avrittrohwer\u003c/code\u003e\u003c/a\u003e) [SIG Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132895\"\u003ekubernetes/kubernetes#132895\u003c/a\u003e, \u003ca href=\"https://github.com/yue9944882\"\u003e\u003ccode\u003e@​yue9944882\u003c/code\u003e\u003c/a\u003e) [SIG Node and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed prerelease lifecycle for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133350\"\u003ekubernetes/kubernetes#133350\u003c/a\u003e, \u003ca href=\"https://github.com/carlory\"\u003e\u003ccode\u003e@​carlory\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIntroduced OpenAPI format support for \u003ccode\u003ek8s-short-name\u003c/code\u003e and \u003ccode\u003ek8s-long-name\u003c/code\u003e in CustomResourceDefinition schemas. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132504\"\u003ekubernetes/kubernetes#132504\u003c/a\u003e, \u003ca href=\"https://github.com/jpbetz\"\u003e\u003ccode\u003e@​jpbetz\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]\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/kubernetes-client/python/commit/5b23a44aa06010ac6ffe423d7b0e090caf7882ff\"\u003e\u003ccode\u003e5b23a44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2455\"\u003e#2455\u003c/a\u003e from yliaog/automated-release-of-34.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/8866972d0e42684f289f14a30e9db645873c5a07\"\u003e\u003ccode\u003e8866972\u003c/code\u003e\u003c/a\u003e Updated the compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9bb20149e75c65640b868d6d0eb389d2a8930059\"\u003e\u003ccode\u003e9bb2014\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/efa2b2610b4b4223fd06137b0c7f6c326338d669\"\u003e\u003ccode\u003eefa2b26\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/b374f2ea67b2caa183e52f1e1ce57e27aaadac89\"\u003e\u003ccode\u003eb374f2e\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d14e9fbdd7bce1ed3c5bac4cb54caac3605e353\"\u003e\u003ccode\u003e9d14e9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2452\"\u003e#2452\u003c/a\u003e from yliaog/automated-release-of-34.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/749ec15345a6a1d1daa2fbab7779dd554669335c\"\u003e\u003ccode\u003e749ec15\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/14901c6b346a14a4b925435c124bd98dc8abe247\"\u003e\u003ccode\u003e14901c6\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fe16bed8478ea77dd94ee544d94fc93093745447\"\u003e\u003ccode\u003efe16bed\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0b1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/c66f45a265b851aeb13d6986eb7c61df9562ec0d\"\u003e\u003ccode\u003ec66f45a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2448\"\u003e#2448\u003c/a\u003e from yliaog/automated-release-of-34.1.0a1-upstream-r...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v30.1.0...v34.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\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/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\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.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of 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/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\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.1 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\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Cython 3.x and Python 3.13.\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.1...6.0.2\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.2rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for extension build with Cython 3.x\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdded PyPI wheels for musllinux on aarch64\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/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\u003cp\u003e6.0.2 (2024-08-06)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/808\"\u003eyaml/pyyaml#808\u003c/a\u003e -- Support for Cython 3.x and Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/41309b0bcb4559edb1d691d47199035ef539d785\"\u003e\u003ccode\u003e41309b0\u003c/code\u003e\u003c/a\u003e Release 6.0.2 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/dd9f0e1236775dcce682c91823e009556ce2a271\"\u003e\u003ccode\u003edd9f0e1\u003c/code\u003e\u003c/a\u003e 6.0.2rc1 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/809\"\u003e#809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/f5527a26d518b3e9c66f9211e0af00c83f09a97e\"\u003e\u003ccode\u003ef5527a2\u003c/code\u003e\u003c/a\u003e disable CI trigger on PR edits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/b4d80a742142004490d2da7691d534923820b81c\"\u003e\u003ccode\u003eb4d80a7\u003c/code\u003e\u003c/a\u003e Python 3.12 + musllinux_1_1_x86_64 wheel support\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.1...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.2.2 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ca href=\"https://opencollective.com/urllib3/contributions/815307\"\u003esponsored by LaunchDarkly\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2868\"\u003eurllib3/urllib3#2868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly requests and streaming, and makes it possible to use in Node.js if you launch it as node \u003ccode\u003e--experimental-wasm-stack-switching\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3400\"\u003eurllib3/urllib3#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3285\"\u003eurllib3/urllib3#3285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3480\"\u003eurllib3/urllib3#3480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3489\"\u003eurllib3/urllib3#3489\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3492\"\u003eurllib3/urllib3#3492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1. All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (`\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3413\"\u003e#3413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3448\"\u003e#3448\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3425\"\u003e#3425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage. Now only accepting supported h2 major version 4.x.x. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3290\"\u003e#3290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a probing mechanism for determining whether a given target origin supports HTTP/2 via ALPN. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3301\"\u003e#3301\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0 (2024-12-22)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ccode\u003esponsored by LaunchDarkly \u0026lt;https://opencollective.com/urllib3/contributions/815307\u0026gt;\u003c/code\u003e\u003cstrong\u003e. (\u003ccode\u003e[#2868](https://github.com/urllib3/urllib3/issues/2868) \u0026lt;https://github.com/urllib3/urllib3/issues/2868\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly\nrequests and streaming, and makes it possible to use in Node.js if you launch it as  \u003ccode\u003enode --experimental-wasm-stack-switching\u003c/code\u003e. (\u003ccode\u003e[#3400](https://github.com/urllib3/urllib3/issues/3400) \u0026lt;https://github.com/urllib3/urllib3/issues/3400\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ccode\u003e[#3285](https://github.com/urllib3/urllib3/issues/3285) \u0026lt;https://github.com/urllib3/urllib3/issues/3285\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ccode\u003e[#3480](https://github.com/urllib3/urllib3/issues/3480) \u0026lt;https://github.com/urllib3/urllib3/issues/3480\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ccode\u003e[#3489](https://github.com/urllib3/urllib3/issues/3489) \u0026lt;https://github.com/urllib3/urllib3/issues/3489\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ccode\u003e[#3492](https://github.com/urllib3/urllib3/issues/3492) \u0026lt;https://github.com/urllib3/urllib3/issues/3492\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.3 (2024-09-12)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ccode\u003e[#3473](https://github.com/urllib3/urllib3/issues/3473) \u0026lt;https://github.com/urllib3/urllib3/issues/3473\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1.\nAll other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ccode\u003e[#3053](https://github.com/urllib3/urllib3/issues/3053) \u0026lt;https://github.com/urllib3/urllib3/issues/3053\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (\u003ccode\u003e[#3252](https://github.com/urllib3/urllib3/issues/3252) \u0026lt;https://github.com/urllib3/urllib3/issues/3252\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ccode\u003e[#3413](https://github.com/urllib3/urllib3/issues/3413) \u0026lt;https://github.com/urllib3/urllib3/issues/3413\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ccode\u003e[#3432](https://github.com/urllib3/urllib3/issues/3432) \u0026lt;https://github.com/urllib3/urllib3/issues/3432\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ccode\u003e[#3448](https://github.com/urllib3/urllib3/issues/3448) \u0026lt;https://github.com/urllib3/urllib3/issues/3448\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ccode\u003e[#3425](https://github.com/urllib3/urllib3/issues/3425) \u0026lt;https://github.com/urllib3/urllib3/issues/3425\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/2f68c5363ef632d73dd4d9300289d7ce5ff275b4\"\u003e\u003ccode\u003e2f68c53\u003c/code\u003e\u003c/a\u003e Release 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f7bcf6986fa9c43fc7884b648f66688db593b491\"\u003e\u003ccode\u003ef7bcf69\u003c/code\u003e\u003c/a\u003e Add HTTPResponse.shutdown() to stop blocking reads (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3527\"\u003e#3527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e94224931feddf9e12bb25452bf0d0c21da8a7e0\"\u003e\u003ccode\u003ee942249\u003c/code\u003e\u003c/a\u003e Update .readthedocs.yml addressing a deprecation (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3534\"\u003e#3534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/905549d64a948abd4b6962edecb8dd5569166275\"\u003e\u003ccode\u003e905549d\u003c/code\u003e\u003c/a\u003e Upgrade Python pre-commit tools (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3529\"\u003e#3529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/716d8340b89f7d8ec549579d14e3c0a7e5f859a5\"\u003e\u003ccode\u003e716d834\u003c/code\u003e\u003c/a\u003e Fix PyPI publish with Core metadata 2.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3531\"\u003e#3531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7ab935c6ddd546c7d57b03c0269685c61c8e60c6\"\u003e\u003ccode\u003e7ab935c\u003c/code\u003e\u003c/a\u003e Address zizmor issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/181357ed2aecf9c523f2664c05f176cde9692994\"\u003e\u003ccode\u003e181357e\u003c/code\u003e\u003c/a\u003e Bump Quart to fix CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3524\"\u003e#3524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0e7e0df0586573d51c78076d4871050783bec7c8\"\u003e\u003ccode\u003e0e7e0df\u003c/code\u003e\u003c/a\u003e Start testing with Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/d67d09bfd04ecdae1280a563d06b32949befaf71\"\u003e\u003ccode\u003ed67d09b\u003c/code\u003e\u003c/a\u003e Bump mypy version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/20032ec38a09680bcfb6d97b4c43b276af43cc64\"\u003e\u003ccode\u003e20032ec\u003c/code\u003e\u003c/a\u003e Drop unneeded dependency pins and a warning filter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.2...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.5.1 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.47.0\u003c/h2\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Make PropagationContext.from_incoming_data always return a PropagationContext by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5186\"\u003e#5186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(integrations):  anthropic set \u003ccode\u003eGEN_AI_OPERATION_NAME\u003c/code\u003e by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5185\"\u003e#5185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(spotlight): align behavior with SDK spec by \u003ca href=\"https://github.com/BYK\"\u003e\u003ccode\u003e@​BYK\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5169\"\u003e#5169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(integrations): do not exit early when config is not passed as it is not required and prohibits setting \u003ccode\u003egen_ai.request.messages\u003c/code\u003e by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(langchain): add gen_ai.response.model to chat spans by \u003ca href=\"https://github.com/shellmayr\"\u003e\u003ccode\u003e@​shellmayr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5159\"\u003e#5159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(integrations): add the system prompt to the \u003ccode\u003egen_ai.request.messages\u003c/code\u003e attribute by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5161\"\u003e#5161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ai): Handle Pydantic model classes in _normalize_data ...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-notebooks/pull/2069","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-notebooks/issues/2069","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2069/packages"},{"uuid":"3679731198","node_id":"PR_kwDOCBOG5c62R3G5","number":2066,"state":"closed","title":"chore: bump the python group across 2 directories with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-04T06:28:13.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T07:53:44.000Z","updated_at":"2025-12-04T06:28:15.000Z","time_to_close":254069,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: bump","group_name":"python","update_count":28,"packages":[{"name":"python-gitlab","old_version":"4.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"kubernetes","old_version":"30.1.0","new_version":"34.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"gunicorn","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"pyyaml","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.3.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"sentry-sdk","old_version":"2.5.1","new_version":"2.46.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"gevent","old_version":"24.2.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"},{"name":"apispec-webframeworks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/marshmallow-code/apispec-webframeworks"},{"name":"webargs","old_version":"8.4.0","new_version":"8.7.1","repository_url":"https://github.com/marshmallow-code/webargs"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"marshmallow","old_version":"3.21.3","new_version":"4.1.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"apispec","old_version":"6.6.1","new_version":"6.9.0","repository_url":"https://github.com/marshmallow-code/apispec"},{"name":"importlib-metadata","old_version":"7.1.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"dataconf","old_version":"3.2.0","new_version":"3.6.0","repository_url":"https://github.com/zifeo/dataconf"},{"name":"python-ulid","old_version":"2.7.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"cryptography","old_version":"42.0.8","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"chartpress","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/jupyterhub/chartpress"},{"name":"pytest","old_version":"8.2.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"3.7.1","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-cov","old_version":"5.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"semver","old_version":"3.0.2","new_version":"3.0.4","repository_url":"https://github.com/python-semver/python-semver"},{"name":"ruff","old_version":"0.4.9","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"responses","old_version":"0.25.3","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.5.0` | `7.0.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `34.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.1` | `6.0.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.3.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.46.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [apispec-webframeworks](https://github.com/marshmallow-code/apispec-webframeworks) | `1.1.0` | `1.2.0` |\n| [webargs](https://github.com/marshmallow-code/webargs) | `8.4.0` | `8.7.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.21.3` | `4.1.0` |\n| [apispec](https://github.com/marshmallow-code/apispec) | `6.6.1` | `6.9.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.1.0` | `8.7.0` |\n| [dataconf](https://github.com/zifeo/dataconf) | `3.2.0` | `3.6.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `2.7.0` | `3.1.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.8` | `46.0.3` |\n| [chartpress](https://github.com/jupyterhub/chartpress) | `2.2.0` | `2.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.2.2` | `9.0.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.7.1` | `4.5.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `5.0.0` | `7.0.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [semver](https://github.com/python-semver/python-semver) | `3.0.2` | `3.0.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.7` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.25.8` |\n\nBumps the python group with 6 updates in the /git_services directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.46.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.7` |\n| [renku](https://github.com/swissdatasciencecenter/renku-python) | `2.9.2` | `2.9.4` |\n\n\nUpdates `python-gitlab` from 4.5.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0\"\u003ev6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e: Update actions/setup-python action to v6 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/89cdb788feec5fb995c7de6fec6afd83844c2618\"\u003e\u003ccode\u003e89cdb78\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement missing arguments in users 'list'\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Sort 'user list' arguments against documentation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.0 (2025-08-28)\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/python-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f78a8731a7c51b773e90276f765309324403a080\"\u003e\u003ccode\u003ef78a873\u003c/code\u003e\u003c/a\u003e chore: release v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e docs(pull_mirror): fix incorrect start() method usage example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.0.3 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.1/\"\u003ehttps://pypi.org/project/Flask/3.1.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/flask/milestone/36?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/36?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. GHSA-4grg-w6v8-c28g\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5645\"\u003e#5645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands are shown. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5673\"\u003e#5673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return \u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier for Quart. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5659\"\u003e#5659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.0/\"\u003ehttps://pypi.org/project/Flask/3.1.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/33?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/33?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5623\"\u003e#5623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases. Werkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5624\"\u003e#5624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5633\"\u003e#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option responses. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5496\"\u003e#5496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and \u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when opening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5504\"\u003e#5504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only through the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added \u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation about resource limits to the security page. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5625\"\u003e#5625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the \u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5472\"\u003e#5472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files. \u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless \u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5628\"\u003e#5628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old secret keys that can still be used for unsigning. Extensions will need to add support. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5621\"\u003e#5621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how setting \u003ccode\u003ehost_matching=True\u003c/code\u003e or \u003ccode\u003esubdomain_matching=False\u003c/code\u003e interacts with \u003ccode\u003eSERVER_NAME\u003c/code\u003e. Setting \u003ccode\u003eSERVER_NAME\u003c/code\u003e no longer restricts requests to only that domain. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5553\"\u003e#5553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.trusted_hosts\u003c/code\u003e is checked during routing, and can be set through the \u003ccode\u003eTRUSTED_HOSTS\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5636\"\u003e#5636\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via\n\u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. :ghsa:\u003ccode\u003e4grg-w6v8-c28g\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e5645\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands\nare shown. :issue:\u003ccode\u003e5673\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return\n\u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier\nfor Quart. :pr:\u003ccode\u003e5659\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e5623\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases.\nWerkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. :pr:\u003ccode\u003e5624,5633\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option\nresponses. :pr:\u003ccode\u003e5496\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and\n\u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when\nopening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. :issue:\u003ccode\u003e5504\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only\nthrough the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added\n\u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation\nabout resource limits to the security page. :issue:\u003ccode\u003e5625\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the\n\u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. :issue:\u003ccode\u003e5472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files.\n\u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless\n\u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. :issue:\u003ccode\u003e5628\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old\nsecret keys that can still be used for unsigning. Extensions will need to\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.0.3...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 30.1.0 to 34.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0.zip\ncd client-python-v34.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0b1.zip\ncd client-python-v34.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0a1.zip\ncd client-python-v34.1.0a1\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/kubernetes-client/python/blob/master/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev34.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch1\u003ev34.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eomitempty\u003c/code\u003e and \u003ccode\u003eopt\u003c/code\u003e tag to the API \u003ccode\u003ev1beta2\u003c/code\u003e AdminAccess type in the \u003ccode\u003eDeviceRequestAllocationResult\u003c/code\u003e struct. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132338\"\u003ekubernetes/kubernetes#132338\u003c/a\u003e, \u003ca href=\"https://github.com/PatrickLaabs\"\u003e\u003ccode\u003e@​PatrickLaabs\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003eruntime.ApplyConfiguration\u003c/code\u003e interface implemented by all generated apply configuration types. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132194\"\u003ekubernetes/kubernetes#132194\u003c/a\u003e, \u003ca href=\"https://github.com/alvaroaleman\"\u003e\u003ccode\u003e@​alvaroaleman\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Instrumentation]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130387\"\u003ekubernetes/kubernetes#130387\u003c/a\u003e, \u003ca href=\"https://github.com/shiya0705\"\u003e\u003ccode\u003e@​shiya0705\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a mechanism for configurable container restarts: \u003cem\u003econtainer-level restart rules\u003c/em\u003e. This was an alpha feature behind the \u003ccode\u003eContainerRestartRules\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132642\"\u003ekubernetes/kubernetes#132642\u003c/a\u003e, \u003ca href=\"https://github.com/yuanwang04\"\u003e\u003ccode\u003e@​yuanwang04\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003eFileKeyRef\u003c/code\u003e field to containers, allowing them to load variables from files by setting this field.\u003c/p\u003e\n\u003cp\u003eIntroduced the \u003ccode\u003eEnvFiles\u003c/code\u003e feature gate to govern activation of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132626\"\u003ekubernetes/kubernetes#132626\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded driver-owned fields in \u003ccode\u003eResourceSlice\u003c/code\u003e to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded user-owned fields in \u003ccode\u003eResourceClaim\u003c/code\u003e to specify resource requirements against each device capacity.\u003c/li\u003e\n\u003cli\u003eAdded scheduler-owned field in \u003ccode\u003eResourceClaim.Status\u003c/code\u003e to specify how much device capacity is reserved for a specific request.\u003c/li\u003e\n\u003cli\u003eAdded an additional identifier to \u003ccode\u003eResourceClaim.Status\u003c/code\u003e for the device supports multiple allocations.\u003c/li\u003e\n\u003cli\u003eAdded a new constraint type to enforce uniqueness of specified attributes across all allocated devices. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132522\"\u003ekubernetes/kubernetes#132522\u003c/a\u003e, \u003ca href=\"https://github.com/sunya-ch\"\u003e\u003ccode\u003e@​sunya-ch\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded new optional APIs in \u003ccode\u003eResouceSlice.Basic\u003c/code\u003e and \u003ccode\u003eResourceClaim.Status.AllocatedDeviceStatus\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130160\"\u003ekubernetes/kubernetes#130160\u003c/a\u003e, \u003ca href=\"https://github.com/KobayashiD27\"\u003e\u003ccode\u003e@​KobayashiD27\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for specifying \u003ccode\u003econtrolplane\u003c/code\u003e or \u003ccode\u003ecluster\u003c/code\u003e egress selectors in JWT authenticators via the \u003ccode\u003eissuer.egressSelectorType\u003c/code\u003e field in the \u003ccode\u003eAuthenticationConfiguration.jwt\u003c/code\u003e array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the \u003ccode\u003eStructuredAuthenticationConfigurationEgressSelector\u003c/code\u003e beta feature gate (enabled by default). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132768\"\u003ekubernetes/kubernetes#132768\u003c/a\u003e, \u003ca href=\"https://github.com/enj\"\u003e\u003ccode\u003e@​enj\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the \u003ccode\u003epod.status.containerStatuses.allocatedResourcesStatus\u003c/code\u003e field. This required the DRA plugin to implement the new v1alpha1 \u003ccode\u003eNodeHealth\u003c/code\u003e gRPC service. This feature was controlled by the \u003ccode\u003eResourceHealthStatus\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130606\"\u003ekubernetes/kubernetes#130606\u003c/a\u003e, \u003ca href=\"https://github.com/Jpsassine\"\u003e\u003ccode\u003e@​Jpsassine\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132771\"\u003ekubernetes/kubernetes#132771\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded validation to reject Pods using the \u003ccode\u003ePodLevelResources\u003c/code\u003e feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a \u003ccode\u003ePod.spec.os.name\u003c/code\u003e targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133046\"\u003ekubernetes/kubernetes#133046\u003c/a\u003e, \u003ca href=\"https://github.com/toVersus\"\u003e\u003ccode\u003e@​toVersus\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded warnings when creating headless service with set \u003ccode\u003eloadBalancerIP\u003c/code\u003e,\u003ccode\u003eexternalIPs\u003c/code\u003e and/or \u003ccode\u003eSessionAffinity\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132214\"\u003ekubernetes/kubernetes#132214\u003c/a\u003e, \u003ca href=\"https://github.com/Peac36\"\u003e\u003ccode\u003e@​Peac36\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed \u003ccode\u003epvc.spec.VolumeAttributesClassName\u003c/code\u003e to change from non-nil to nil. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132106\"\u003ekubernetes/kubernetes#132106\u003c/a\u003e, \u003ca href=\"https://github.com/AndrewSirenko\"\u003e\u003ccode\u003e@​AndrewSirenko\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed setting the \u003ccode\u003ehostnameOverride\u003c/code\u003e field in \u003ccode\u003ePodSpec\u003c/code\u003e to specify any RFC 1123 DNS subdomain as the pod's hostname. The \u003ccode\u003eHostnameOverride\u003c/code\u003e feature gate was introduced to control enablement of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132558\"\u003ekubernetes/kubernetes#132558\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Network, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic for \u003ccode\u003eEviction Manager\u003c/code\u003e helper functions. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132277\"\u003ekubernetes/kubernetes#132277\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131089\"\u003ekubernetes/kubernetes#131089\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrected the documentation to clarify that \u003ccode\u003epodSelector\u003c/code\u003e is optional and described its default behavior. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131354\"\u003ekubernetes/kubernetes#131354\u003c/a\u003e, \u003ca href=\"https://github.com/tomoish\"\u003e\u003ccode\u003e@​tomoish\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\nbefore updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u0026lt; 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u0026gt;= 1.32. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132000\"\u003ekubernetes/kubernetes#132000\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting with Kubernetes 1.34, the alpha-level \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e label has been updated to \u003ccode\u003eresource.kubernetes.io/admin-access\u003c/code\u003e. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e when no downgrade is going to happen anymore. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131996\"\u003ekubernetes/kubernetes#131996\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's \u003ccode\u003eFilterTimeout\u003c/code\u003e. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u0026lt;= 1.33. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132033\"\u003ekubernetes/kubernetes#132033\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130593\"\u003ekubernetes/kubernetes#130593\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes  \u0026gt;= 1.32 use the v1beta1 API and continue to be supported. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132574\"\u003ekubernetes/kubernetes#132574\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated \u003ccode\u003eStreamingConnectionIdleTimeout\u003c/code\u003e field of the kubelet config. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131992\"\u003ekubernetes/kubernetes#131992\u003c/a\u003e, \u003ca href=\"https://github.com/lalitc375\"\u003e\u003ccode\u003e@​lalitc375\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the \u003cem\u003estructured parameters\u003c/em\u003e flavor of DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132706\"\u003ekubernetes/kubernetes#132706\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnabled kube-apiserver support for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e and \u003ccode\u003ePodCertificate\u003c/code\u003e projected volumes (behind the \u003ccode\u003ePodCertificateRequest\u003c/code\u003e feature gate). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128010\"\u003ekubernetes/kubernetes#128010\u003c/a\u003e, \u003ca href=\"https://github.com/ahmedtd\"\u003e\u003ccode\u003e@​ahmedtd\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended resources backed by DRA feature allowed cluster operator to specify \u003ccode\u003eextendedResourceName\u003c/code\u003e in \u003ccode\u003eDeviceClass\u003c/code\u003e, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eNodeResourcesFit\u003c/code\u003e plugin scoring didn't work for extended resources backed by DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130653\"\u003ekubernetes/kubernetes#130653\u003c/a\u003e, \u003ca href=\"https://github.com/yliaog\"\u003e\u003ccode\u003e@​yliaog\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132040\"\u003ekubernetes/kubernetes#132040\u003c/a\u003e, \u003ca href=\"https://github.com/avrittrohwer\"\u003e\u003ccode\u003e@​avrittrohwer\u003c/code\u003e\u003c/a\u003e) [SIG Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132895\"\u003ekubernetes/kubernetes#132895\u003c/a\u003e, \u003ca href=\"https://github.com/yue9944882\"\u003e\u003ccode\u003e@​yue9944882\u003c/code\u003e\u003c/a\u003e) [SIG Node and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed prerelease lifecycle for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133350\"\u003ekubernetes/kubernetes#133350\u003c/a\u003e, \u003ca href=\"https://github.com/carlory\"\u003e\u003ccode\u003e@​carlory\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIntroduced OpenAPI format support for \u003ccode\u003ek8s-short-name\u003c/code\u003e and \u003ccode\u003ek8s-long-name\u003c/code\u003e in CustomResourceDefinition schemas. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132504\"\u003ekubernetes/kubernetes#132504\u003c/a\u003e, \u003ca href=\"https://github.com/jpbetz\"\u003e\u003ccode\u003e@​jpbetz\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]\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/kubernetes-client/python/commit/5b23a44aa06010ac6ffe423d7b0e090caf7882ff\"\u003e\u003ccode\u003e5b23a44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2455\"\u003e#2455\u003c/a\u003e from yliaog/automated-release-of-34.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/8866972d0e42684f289f14a30e9db645873c5a07\"\u003e\u003ccode\u003e8866972\u003c/code\u003e\u003c/a\u003e Updated the compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9bb20149e75c65640b868d6d0eb389d2a8930059\"\u003e\u003ccode\u003e9bb2014\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/efa2b2610b4b4223fd06137b0c7f6c326338d669\"\u003e\u003ccode\u003eefa2b26\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/b374f2ea67b2caa183e52f1e1ce57e27aaadac89\"\u003e\u003ccode\u003eb374f2e\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d14e9fbdd7bce1ed3c5bac4cb54caac3605e353\"\u003e\u003ccode\u003e9d14e9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2452\"\u003e#2452\u003c/a\u003e from yliaog/automated-release-of-34.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/749ec15345a6a1d1daa2fbab7779dd554669335c\"\u003e\u003ccode\u003e749ec15\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/14901c6b346a14a4b925435c124bd98dc8abe247\"\u003e\u003ccode\u003e14901c6\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fe16bed8478ea77dd94ee544d94fc93093745447\"\u003e\u003ccode\u003efe16bed\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0b1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/c66f45a265b851aeb13d6986eb7c61df9562ec0d\"\u003e\u003ccode\u003ec66f45a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2448\"\u003e#2448\u003c/a\u003e from yliaog/automated-release-of-34.1.0a1-upstream-r...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v30.1.0...v34.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\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/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\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.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of 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/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\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.1 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\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Cython 3.x and Python 3.13.\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.1...6.0.2\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.2rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for extension build with Cython 3.x\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdded PyPI wheels for musllinux on aarch64\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/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\u003cp\u003e6.0.2 (2024-08-06)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/808\"\u003eyaml/pyyaml#808\u003c/a\u003e -- Support for Cython 3.x and Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/41309b0bcb4559edb1d691d47199035ef539d785\"\u003e\u003ccode\u003e41309b0\u003c/code\u003e\u003c/a\u003e Release 6.0.2 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/dd9f0e1236775dcce682c91823e009556ce2a271\"\u003e\u003ccode\u003edd9f0e1\u003c/code\u003e\u003c/a\u003e 6.0.2rc1 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/809\"\u003e#809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/f5527a26d518b3e9c66f9211e0af00c83f09a97e\"\u003e\u003ccode\u003ef5527a2\u003c/code\u003e\u003c/a\u003e disable CI trigger on PR edits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/b4d80a742142004490d2da7691d534923820b81c\"\u003e\u003ccode\u003eb4d80a7\u003c/code\u003e\u003c/a\u003e Python 3.12 + musllinux_1_1_x86_64 wheel support\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.1...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.2.2 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ca href=\"https://opencollective.com/urllib3/contributions/815307\"\u003esponsored by LaunchDarkly\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2868\"\u003eurllib3/urllib3#2868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly requests and streaming, and makes it possible to use in Node.js if you launch it as node \u003ccode\u003e--experimental-wasm-stack-switching\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3400\"\u003eurllib3/urllib3#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3285\"\u003eurllib3/urllib3#3285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3480\"\u003eurllib3/urllib3#3480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3489\"\u003eurllib3/urllib3#3489\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3492\"\u003eurllib3/urllib3#3492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1. All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (`\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3413\"\u003e#3413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3448\"\u003e#3448\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3425\"\u003e#3425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage. Now only accepting supported h2 major version 4.x.x. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3290\"\u003e#3290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a probing mechanism for determining whether a given target origin supports HTTP/2 via ALPN. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3301\"\u003e#3301\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0 (2024-12-22)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ccode\u003esponsored by LaunchDarkly \u0026lt;https://opencollective.com/urllib3/contributions/815307\u0026gt;\u003c/code\u003e\u003cstrong\u003e. (\u003ccode\u003e[#2868](https://github.com/urllib3/urllib3/issues/2868) \u0026lt;https://github.com/urllib3/urllib3/issues/2868\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly\nrequests and streaming, and makes it possible to use in Node.js if you launch it as  \u003ccode\u003enode --experimental-wasm-stack-switching\u003c/code\u003e. (\u003ccode\u003e[#3400](https://github.com/urllib3/urllib3/issues/3400) \u0026lt;https://github.com/urllib3/urllib3/issues/3400\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ccode\u003e[#3285](https://github.com/urllib3/urllib3/issues/3285) \u0026lt;https://github.com/urllib3/urllib3/issues/3285\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ccode\u003e[#3480](https://github.com/urllib3/urllib3/issues/3480) \u0026lt;https://github.com/urllib3/urllib3/issues/3480\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ccode\u003e[#3489](https://github.com/urllib3/urllib3/issues/3489) \u0026lt;https://github.com/urllib3/urllib3/issues/3489\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ccode\u003e[#3492](https://github.com/urllib3/urllib3/issues/3492) \u0026lt;https://github.com/urllib3/urllib3/issues/3492\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.3 (2024-09-12)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ccode\u003e[#3473](https://github.com/urllib3/urllib3/issues/3473) \u0026lt;https://github.com/urllib3/urllib3/issues/3473\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1.\nAll other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ccode\u003e[#3053](https://github.com/urllib3/urllib3/issues/3053) \u0026lt;https://github.com/urllib3/urllib3/issues/3053\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (\u003ccode\u003e[#3252](https://github.com/urllib3/urllib3/issues/3252) \u0026lt;https://github.com/urllib3/urllib3/issues/3252\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ccode\u003e[#3413](https://github.com/urllib3/urllib3/issues/3413) \u0026lt;https://github.com/urllib3/urllib3/issues/3413\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ccode\u003e[#3432](https://github.com/urllib3/urllib3/issues/3432) \u0026lt;https://github.com/urllib3/urllib3/issues/3432\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ccode\u003e[#3448](https://github.com/urllib3/urllib3/issues/3448) \u0026lt;https://github.com/urllib3/urllib3/issues/3448\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ccode\u003e[#3425](https://github.com/urllib3/urllib3/issues/3425) \u0026lt;https://github.com/urllib3/urllib3/issues/3425\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/2f68c5363ef632d73dd4d9300289d7ce5ff275b4\"\u003e\u003ccode\u003e2f68c53\u003c/code\u003e\u003c/a\u003e Release 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f7bcf6986fa9c43fc7884b648f66688db593b491\"\u003e\u003ccode\u003ef7bcf69\u003c/code\u003e\u003c/a\u003e Add HTTPResponse.shutdown() to stop blocking reads (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3527\"\u003e#3527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e94224931feddf9e12bb25452bf0d0c21da8a7e0\"\u003e\u003ccode\u003ee942249\u003c/code\u003e\u003c/a\u003e Update .readthedocs.yml addressing a deprecation (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3534\"\u003e#3534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/905549d64a948abd4b6962edecb8dd5569166275\"\u003e\u003ccode\u003e905549d\u003c/code\u003e\u003c/a\u003e Upgrade Python pre-commit tools (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3529\"\u003e#3529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/716d8340b89f7d8ec549579d14e3c0a7e5f859a5\"\u003e\u003ccode\u003e716d834\u003c/code\u003e\u003c/a\u003e Fix PyPI publish with Core metadata 2.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3531\"\u003e#3531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7ab935c6ddd546c7d57b03c0269685c61c8e60c6\"\u003e\u003ccode\u003e7ab935c\u003c/code\u003e\u003c/a\u003e Address zizmor issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/181357ed2aecf9c523f2664c05f176cde9692994\"\u003e\u003ccode\u003e181357e\u003c/code\u003e\u003c/a\u003e Bump Quart to fix CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3524\"\u003e#3524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0e7e0df0586573d51c78076d4871050783bec7c8\"\u003e\u003ccode\u003e0e7e0df\u003c/code\u003e\u003c/a\u003e Start testing with Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/d67d09bfd04ecdae1280a563d06b32949befaf71\"\u003e\u003ccode\u003ed67d09b\u003c/code\u003e\u003c/a\u003e Bump mypy version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/20032ec38a09680bcfb6d97b4c43b276af43cc64\"\u003e\u003ccode\u003e20032ec\u003c/code\u003e\u003c/a\u003e Drop unneeded dependency pins and a warning filter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.2...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.5.1 to 2.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.46.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e in Pydantic AI integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI agents integration mistakenly enabling itself (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd instrumentation to embedding functions for various backends (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5120\"\u003e#5120\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove embeddings support for OpenAI (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5121\"\u003e#5121\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance input handling for embeddings in LiteLLM integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5127\"\u003e#5127\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpect exceptions when re-raised (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5125\"...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-notebooks/pull/2066","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-notebooks/issues/2066","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2066/packages"},{"uuid":"3607186104","node_id":"PR_kwDOBM-Q_c6yfP8q","number":3354,"state":"open","title":"Bump python-gitlab from 6.5.0 to 7.0.0 in /scanners/git-repo-scanner/scanner in the pip-version-updates group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T10:02:42.000Z","updated_at":"2025-11-10T10:03:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/scanners/git-repo-scanner/scanner in the pip-version-updates group across 1 directory","ecosystem":"pip"},"body":"Bumps the pip-version-updates group with 1 update in the /scanners/git-repo-scanner/scanner directory: [python-gitlab](https://github.com/python-gitlab/python-gitlab).\n\nUpdates `python-gitlab` from 6.5.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/secureCodeBox/secureCodeBox/pull/3354","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/secureCodeBox%2FsecureCodeBox/issues/3354","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3354/packages"},{"uuid":"3582509824","node_id":"PR_kwDOEitXEs6xNfJy","number":6487,"state":"open","title":"Bump python-gitlab from 6.5.0 to 7.0.0 in /.config/python/dev","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":"2025-11-03T15:15:06.000Z","updated_at":"2025-11-03T15:25:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/.config/python/dev","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 6.5.0 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/oxsecurity/megalinter/pull/6487","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxsecurity%2Fmegalinter/issues/6487","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6487/packages"}],"issue_packages":[{"old_version":"4.4.0","new_version":"8.1.0","update_type":"major","path":"/control-plane-api","pr_created_at":"2026-03-03T00:53:36.000Z","version_change":"4.4.0 → 8.1.0","issue":{"uuid":"4014088310","node_id":"PR_kwDOQ2NDNc7HeiTX","number":1375,"state":"open","title":"chore(deps): bump python-gitlab from 4.4.0 to 8.1.0 in /control-plane-api","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-03T00:53:36.000Z","updated_at":"2026-03-04T09:01:45.804Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"python-gitlab","old_version":"4.4.0","new_version":"8.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/control-plane-api","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 4.4.0 to 8.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.0 (2026-02-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes\u003c/strong\u003e: Add explicit submodule import for pyright compatibility (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000\"\u003e\u003ccode\u003e84ad3fd\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for order_by filter in runner jobs (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf\"\u003e\u003ccode\u003ed5dc73d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for sort filter in runner jobs (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/b117ee3d139f422e463ebeb5007517a2052af8a4\"\u003e\u003ccode\u003eb117ee3\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v8.0.0...v8.1.0\"\u003ev8.0.0...v8.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.1.0 (2026-02-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes\u003c/strong\u003e: Add explicit submodule import for pyright compatibility\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000\"\u003e\u003ccode\u003e84ad3fd\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for order_by filter in runner jobs\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf\"\u003e\u003ccode\u003ed5dc73d\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add support for sort filter in runner jobs\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/b117ee3d139f422e463ebeb5007517a2052af8a4\"\u003e\u003ccode\u003eb117ee3\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\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-gitlab/python-gitlab/commit/5294a4862511aed78ed7e5cc45ea6424b5f48825\"\u003e\u003ccode\u003e5294a48\u003c/code\u003e\u003c/a\u003e chore: release v8.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf\"\u003e\u003ccode\u003ed5dc73d\u003c/code\u003e\u003c/a\u003e feat(api): add support for order_by filter in runner jobs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0bfaa6b0d5381a9dce8d5c37696188395bb9c08f\"\u003e\u003ccode\u003e0bfaa6b\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency types-setuptools to v82\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/14bdc0497df4828908d721567b10946c51527275\"\u003e\u003ccode\u003e14bdc04\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e5fd81dd51fc4a8c8da24da966818308a8ebb5a9\"\u003e\u003ccode\u003ee5fd81d\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/b0e064d022f30da2cd9ffa8c2e01f10e1f553108\"\u003e\u003ccode\u003eb0e064d\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.9.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3355\"\u003e#3355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000\"\u003e\u003ccode\u003e84ad3fd\u003c/code\u003e\u003c/a\u003e fix(types): add explicit submodule import for pyright compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4e01d33cc85cff1ab6fac28ddc6fa52ade0a83b8\"\u003e\u003ccode\u003e4e01d33\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/de116f90294c93ebef321c981a164a6648bbecf8\"\u003e\u003ccode\u003ede116f9\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.4-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3348\"\u003e#3348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f82ae24c82a8349f139d416ec9b494562abb6b1e\"\u003e\u003ccode\u003ef82ae24\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.3-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3341\"\u003e#3341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.4.0...v8.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=4.4.0\u0026new-version=8.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/stoa-platform/stoa/pull/1375","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoa-platform%2Fstoa/issues/1375","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1375/packages"}},{"old_version":"6.5.0","new_version":"8.0.0","update_type":"major","path":null,"pr_created_at":"2026-02-27T08:10:39.000Z","version_change":"6.5.0 → 8.0.0","issue":{"uuid":"3999761930","node_id":"PR_kwDOP_tZLs7GwnM_","number":75,"state":"open","title":"chore(deps): Bump python-gitlab from 6.5.0 to 8.0.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-27T08:10:39.000Z","updated_at":"2026-02-27T08:11:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 6.5.0 to 8.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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-gitlab/python-gitlab/commit/425d0d5787f986ebbd980f4a8f638662132aa0bf\"\u003e\u003ccode\u003e425d0d5\u003c/code\u003e\u003c/a\u003e chore: release v8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4440d0ca0f9d31acf80db7f26b567bba206f6ebc\"\u003e\u003ccode\u003e4440d0c\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e chore(precommit): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3bcc42a694afbf9f25c0b107d817342cf0379fd4\"\u003e\u003ccode\u003e3bcc42a\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3334\"\u003e#3334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e7d1fbba003a040615dd8120c553701b668285dd\"\u003e\u003ccode\u003ee7d1fbb\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency wheel to v0.46.2 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e fix: actually define project repr_attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e fix: file save start_branch as a body attribute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e chore(black): run black v26 on code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/39975d5cdae48e2f38cffa58057a4469c855e90e\"\u003e\u003ccode\u003e39975d5\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1358e4574ebc539d8c0418c889d46c0d50e64470\"\u003e\u003ccode\u003e1358e45\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sphinx to v9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=8.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/clayauld/meshtopo/pull/75","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/clayauld%2Fmeshtopo/issues/75","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/75/packages"}},{"old_version":"7.1.0","new_version":"8.0.0","update_type":"major","path":null,"pr_created_at":"2026-02-09T12:54:00.000Z","version_change":"7.1.0 → 8.0.0","issue":{"uuid":"3916244750","node_id":"PR_kwDOBgEVAc7Ceb1M","number":1178,"state":"open","title":"build(deps): bump the python-gitlab group with 2 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-02-09T12:54:00.000Z","updated_at":"2026-02-09T12:55:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-gitlab","update_count":2,"packages":[{"name":"python-gitlab","old_version":"7.1.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"python-gitlab","old_version":"7.1.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-gitlab group with 2 updates: [python-gitlab](https://github.com/python-gitlab/python-gitlab) and [python-gitlab[graphql]](https://github.com/python-gitlab/python-gitlab).\n\nUpdates `python-gitlab` from 7.1.0 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/425d0d5787f986ebbd980f4a8f638662132aa0bf\"\u003e\u003ccode\u003e425d0d5\u003c/code\u003e\u003c/a\u003e chore: release v8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4440d0ca0f9d31acf80db7f26b567bba206f6ebc\"\u003e\u003ccode\u003e4440d0c\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e chore(precommit): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3bcc42a694afbf9f25c0b107d817342cf0379fd4\"\u003e\u003ccode\u003e3bcc42a\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3334\"\u003e#3334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e7d1fbba003a040615dd8120c553701b668285dd\"\u003e\u003ccode\u003ee7d1fbb\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency wheel to v0.46.2 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e fix: actually define project repr_attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e fix: file save start_branch as a body attribute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e chore(black): run black v26 on code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/39975d5cdae48e2f38cffa58057a4469c855e90e\"\u003e\u003ccode\u003e39975d5\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1358e4574ebc539d8c0418c889d46c0d50e64470\"\u003e\u003ccode\u003e1358e45\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sphinx to v9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab[graphql]` from 7.1.0 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab[graphql]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ev7.1.0...v8.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab[graphql]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 (2026-01-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eActually define project repr_attr\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFile save start_branch as a body attribute\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eblack\u003c/strong\u003e: Run black v26 on code\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eprecommit\u003c/strong\u003e: Update dependency black to v26\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: Update to gql 4.0.0\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945\"\u003e\u003ccode\u003e6f0da67\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003egraphql\u003c/strong\u003e: GraphQL.execute() no longer accepts graphql.Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/425d0d5787f986ebbd980f4a8f638662132aa0bf\"\u003e\u003ccode\u003e425d0d5\u003c/code\u003e\u003c/a\u003e chore: release v8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4440d0ca0f9d31acf80db7f26b567bba206f6ebc\"\u003e\u003ccode\u003e4440d0c\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f\"\u003e\u003ccode\u003ead43b76\u003c/code\u003e\u003c/a\u003e chore(precommit): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3bcc42a694afbf9f25c0b107d817342cf0379fd4\"\u003e\u003ccode\u003e3bcc42a\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3334\"\u003e#3334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e7d1fbba003a040615dd8120c553701b668285dd\"\u003e\u003ccode\u003ee7d1fbb\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency wheel to v0.46.2 [security]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb\"\u003e\u003ccode\u003e4187a69\u003c/code\u003e\u003c/a\u003e fix: actually define project repr_attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294\"\u003e\u003ccode\u003e1001d93\u003c/code\u003e\u003c/a\u003e fix: file save start_branch as a body attribute\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be\"\u003e\u003ccode\u003e4a8d82b\u003c/code\u003e\u003c/a\u003e chore(black): run black v26 on code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/39975d5cdae48e2f38cffa58057a4469c855e90e\"\u003e\u003ccode\u003e39975d5\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency black to v26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/1358e4574ebc539d8c0418c889d46c0d50e64470\"\u003e\u003ccode\u003e1358e45\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency sphinx to v9\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.1.0...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/gitlabform/gitlabform/pull/1178","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitlabform%2Fgitlabform/issues/1178","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1178/packages"}},{"old_version":"5.6.0","new_version":"8.0.0","update_type":"major","path":null,"pr_created_at":"2026-02-08T16:27:16.000Z","version_change":"5.6.0 → 8.0.0","issue":{"uuid":"3913045712","node_id":"PR_kwDOJVkqEs7CT_7Z","number":1204,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 46 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-08T16:27:16.000Z","updated_at":"2026-02-25T18:00:32.433Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":46,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.3","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.7","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.52.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.2","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.4","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.2","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.8.3","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.10.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.2` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.10.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.15.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.20` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\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.40 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 `alembic` from 1.15.2 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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tenacity` from 9.1.2 to 9.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jd/tenacity/releases\"\u003etenacity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/555\"\u003ejd/tenacity#555\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.3...9.1.4\"\u003ehttps://github.com/jd/tenacity/compare/9.1.3...9.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e9.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply formatting to num seconds in before_sleep_log by \u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping: Accept non-standard logger in helpers logging something by \u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy by \u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix syntax error in wait_chain docstring example by \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 support (EOL) by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport async sleep for sync fn-to-retry by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/551\"\u003ejd/tenacity#551\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/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.3\"\u003ehttps://github.com/jd/tenacity/compare/9.1.2...9.1.3\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/jd/tenacity/commit/d4e868d6b8368c00b5a1fad54de36c2c8c3a0fb3\"\u003e\u003ccode\u003ed4e868d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/24415ebbca6ecafdf870af06441656dd96149d1d\"\u003e\u003ccode\u003e24415eb\u003c/code\u003e\u003c/a\u003e support async sleep for sync fn (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/3bf33b44096077a0608855f6a380fd8a25fa6f26\"\u003e\u003ccode\u003e3bf33b4\u003c/code\u003e\u003c/a\u003e chore: drop Python 3.9 support (EOL) (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/7027da31d27155c7b1831e292a29575af7b5c2b1\"\u003e\u003ccode\u003e7027da3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/21ae7d0cc27069defd111e8ec81407f6d14089f6\"\u003e\u003ccode\u003e21ae7d0\u003c/code\u003e\u003c/a\u003e docs: fix syntax error in wait_chain docstring example (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/ef12c9ed1df4dec3748b1fa9304527245b041d2d\"\u003e\u003ccode\u003eef12c9e\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout in the github-actions group (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/c35a4b341ef5e553c670290fbd8835b59d5f08a3\"\u003e\u003ccode\u003ec35a4b3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/e792bbaf0cab3685c8000899cb9f61e04d6f3e23\"\u003e\u003ccode\u003ee792bba\u003c/code\u003e\u003c/a\u003e ci: fix mypy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/0f55245b8da5c4cc8385c2f692164a6ff52cd88e\"\u003e\u003ccode\u003e0f55245\u003c/code\u003e\u003c/a\u003e ci: remove reno requirements (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/815c34fec2c8d64fe2bc8a6bdd79bfb41f1938c6\"\u003e\u003ccode\u003e815c34f\u003c/code\u003e\u003c/a\u003e feat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\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/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha4...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1204/packages"}},{"old_version":"5.6.0","new_version":"7.1.0","update_type":"major","path":null,"pr_created_at":"2026-01-25T16:25:31.000Z","version_change":"5.6.0 → 7.1.0","issue":{"uuid":"3853496360","node_id":"PR_kwDOJVkqEs6_PnGE","number":1189,"state":"closed","title":"chore(deps): bump the poetry group across 3 directories with 44 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T16:37:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-25T16:25:31.000Z","updated_at":"2026-02-01T16:37:38.000Z","time_to_close":605526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":44,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.50.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.1","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.10.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.4","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.6.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.9.4","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.9.4` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.14` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 23 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 23 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\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.40 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 `alembic` from 1.15.2 to 1.18.1\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.1\u003c/h1\u003e\n\u003cp\u003eReleased: January 14, 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 issue in new plugin system where the configured logger was not\ncorrectly using the \u003ccode\u003e__name__\u003c/code\u003e token to identify the logger.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1779\"\u003e#1779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Revised the change regarding SQLAlchemy 2.1 and deprecation warnings\nrelated to \u003ccode\u003eisolate_from_table=True\u003c/code\u003e. Further developments in release 2.1\nhave revised how this parameter will be modified.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\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/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\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/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha41575\"\u003e\u003ccode\u003e@​natasha41575\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduate the \u003ccode\u003eMatchLabelKeys\u003c/code\u003e (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130463\"\u003ekubernetes/kubernetes#130463\u003c/a\u003e, \u003ca href=\"https://github.com/sanposhiho\"\u003e\u003ccode\u003e@​sanposhiho\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduated image volume sources to beta:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed \u003ccode\u003esubPath\u003c/code\u003e/\u003ccode\u003esubPathExpr\u003c/code\u003e for image volumes\u003c/li\u003e\n\u003cli\u003eAdded kubelet metrics \u003ccode\u003ekubelet_image_volume_requested_total\u003c/code\u003e, \u003ccode\u003ekubelet_image_volume_mounted_succeed_total\u003c/code\u003e and \u003ccode\u003ekubelet_image_volume_mounted_errors_total\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130135\"\u003ekubernetes/kubernetes#130135\u003c/a\u003e, \u003ca href=\"https://github.com/saschagrunert\"\u003e\u003ccode\u003e@​saschagrunert\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented a new status field, \u003ccode\u003e.status.terminatingReplicas\u003c/code\u003e, for Deployments and ReplicaSets to track terminating pods. The new field is present when the \u003ccode\u003eDeploymentPodReplacementPolicy\u003c/code\u003e feature gate is enabled. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128546\"\u003ekubernetes/kubernetes#128546\u003c/a\u003e, \u003ca href=\"https://github.com/atiratree\"\u003e\u003ccode\u003e@​atiratree\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented validation for \u003ccode\u003eNodeSelectorRequirement\u003c/code\u003e values in Kubernetes when creating pods. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128212\"\u003ekubernetes/kubernetes#128212\u003c/a\u003e, \u003ca href=\"https://github.com/AxeZhan\"\u003e\u003ccode\u003e@​AxeZhan\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved how the API server responds to \u003cstrong\u003elist\u003c/strong\u003e requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the \u003ccode\u003eStreamingCollectionEncodingToProtobuf\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129407\"\u003ekubernetes/kubernetes#129407\u003c/a\u003e, \u003ca href=\"https://github.com/serathius\"\u003e\u003ccode\u003e@​serathius\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]\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/kubernetes-client/python/commit/8f5578ee6845d33b3fb54867e2ea88349df6d07e\"\u003e\u003ccode\u003e8f5578e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2412\"\u003e#2412\u003c/a\u003e from yliaog/automated-release-of-33.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/5a367e94d1b185fb31c1683a5c4d834a467293b7\"\u003e\u003ccode\u003e5a367e9\u003c/code\u003e\u003c/a\u003e updated compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/f00d2b7a0efb46acd38b82ea3ec483357ce70a1f\"\u003e\u003ccode\u003ef00d2b7\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d712b488e5d782c547c86271edc6c77fe4ee1d0\"\u003e\u003ccode\u003e9d712b4\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/45eb341e2bd3964d166de0a3055528b62f9e440e\"\u003e\u003ccode\u003e45eb341\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/58551e416ac63b1ac0125262ccca2fbbcd23d63f\"\u003e\u003ccode\u003e58551e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2408\"\u003e#2408\u003c/a\u003e from yliaog/automated-release-of-33.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/bd6c75279449f75adc221a74e7a443d514a943e2\"\u003e\u003ccode\u003ebd6c752\u003c/code\u003e\u003c/a\u003e updated compatibility matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/de8ee89a7ce82613b650c5f3a251de79c12aff26\"\u003e\u003ccode\u003ede8ee89\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fec5585a7d9878237f7b0e3930a8c98f70a72b57\"\u003e\u003ccode\u003efec5585\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/78aee45d0be7f29d710312d879e58d5e47b671e4\"\u003e\u003ccode\u003e78aee45\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0b1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v31.0.0...v33.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ulid` from 3.0.0 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/releases\"\u003epython-ulid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.13 to the trove classifiers.\u003c/li\u003e\n\u003cli\u003eOptimze \u003ccode\u003e@property\u003c/code\u003e to \u003ccode\u003e@cached_property\u003c/code\u003e \u003ca href=\"https://github.com/WH-2099\"\u003e\u003ccode\u003e@​WH-2099\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating ULIDs within the same millisecond, the library will ensure monotonic sort order by incrementing the randomness component by 1 bit. This process is described in the \u003ca href=\"https://github.com/ulid/spec/blob/master/README.md#monotonicity\"\u003espec\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSharpen regular expression for Pydantic \u003ca href=\"https://github.com/aplhk\"\u003e\u003ccode\u003e@​aplhk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix Sphinx warnings when referencing ULID from an external project. \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/blob/main/CHANGELOG.rst\"\u003epython-ulid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e3.1.0\u003c/code\u003e_ - 2025-08-18\u003c/h2\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Added Python 3.13 to the trove classifiers.\n* Optimze ``@property`` to ``@cached_property`` `@WH-2099 \u0026lt;https://github.com/WH-2099\u0026gt;`_.\n* When generating ULIDs within the same millisecond, the library will ensure monotonic sort order by\n  incrementing the randomness component by 1 bit. This process is descrbied in the\n  `spec \u0026lt;https://github.com/ulid/spec/blob/master/README.md#monotonicity\u0026gt;`_.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Sharpen regular expression for Pydantic `@aplhk \u0026amp;lt;https://github.com/aplhk\u0026amp;gt;`_.\n* Fix Sphinx warnings when referencing ULID from an external project. `@BoboTiG \u0026amp;lt;https://github.com/BoboTiG\u0026amp;gt;`_.\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/12277593be322123b2f6ff39fbe329a3eb0b7c15\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1227759\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Always specify byteorder for Python 3.9\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/14683ee0df6e4a2966ceb32d3497bc5d3a9d7079\u0026quot;\u0026gt;\u0026lt;code\u0026gt;14683ee\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Implement same ms monotonic sort order\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/51b4ab8dace5661a1689f4bcaaefbc529d0c4632\u0026quot;\u0026gt;\u0026lt;code\u0026gt;51b4ab8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Add changelog for 3.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/c36c65f7730422591f6302a60d6a00324c7ba9a2\u0026quot;\u0026gt;\u0026lt;code\u0026gt;c36c65f\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Improve Sphinx interdoc\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/dfc3b9cee46518514d44fb34fd5d36d6f414b965\u0026quot;\u0026gt;\u0026lt;code\u0026gt;dfc3b9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Fix sphinx warnings (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/35\u0026quot;\u0026gt;#35\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/59cd43d0d5aa3a8bf509f8da516d0c27597d020b\u0026quot;\u0026gt;\u0026lt;code\u0026gt;59cd43d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Add uv and freezegun dependencies\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9e56decb2b16ec8d6ebaccdc200de264e69f96e3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9e56dec\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Optimize regex pattern\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9b3168bed2938e7de4a4d4565aec62a3eab7f5c5\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9b3168b\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update tooling, type checking and linting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/929ef8ac34ef953c980490dd875b3100fc4351aa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;929ef8a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Move dev dependences into pyproject.toml\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/a1434e82a854f1796ba4ad5da5a095789038f506\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a1434e8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; optimize property to cached_property (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/37\u0026quot;\u0026gt;#37\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/compare/3.0.0...3.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `python-gitlab` from 5.6.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.2.6 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsyocpg 3.3.3 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to change loaders using \u003ccode\u003e~adapt.AdaptersMap.register_loader()\u003c/code\u003e on\n\u003ccode\u003eCursor.adapters\u003c/code\u003e after a query result has been already returned\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/psycopg/commit/bc9e7bde14acd080c7597185a7904a4bc246ed0e\"\u003e\u003ccode\u003ebc9e7bd\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/3bcabb4592c6352aedb23f315dbd81326e9fbd14\"\u003e\u003ccode\u003e3bcabb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1231\"\u003e#1231\u003c/a\u003e from noirbee/fix/1230-adapter-get-dumper-race-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/08bfe006ae0d9dea00b69f6a6df8497a0c0e4965\"\u003e\u003ccode\u003e08bfe00\u003c/code\u003e\u003c/a\u003e fix(adapters): avoid race condition when replacing class name with itself\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7be710e7cbe42c94288efeda0bb5a87ad9659f03\"\u003e\u003ccode\u003e7be710e\u003c/code\u003e\u003c/a\u003e fix: mark external libpq C functions as noexcept nogil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6a24300ad2392e502a7c9d3c244ead6852890d90\"\u003e\u003ccode\u003e6a24300\u003c/code\u003e\u003c/a\u003e docs: larger font for 3.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/5a60a1e6b2394e6d3ccdb1d08cfd24d6fbac3d78\"\u003e\u003ccode\u003e5a60a1e\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.2.6...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1189/packages"}},{"old_version":"5.6.0","new_version":"7.1.0","update_type":"major","path":null,"pr_created_at":"2026-01-11T16:39:23.000Z","version_change":"5.6.0 → 7.1.0","issue":{"uuid":"3801593197","node_id":"PR_kwDOJVkqEs68j0tv","number":1164,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 45 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-01-11T16:39:23.000Z","updated_at":"2026-01-18T16:46:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":45,"packages":[{"name":"sanic","old_version":"24.12.0","new_version":"25.12.0","repository_url":"https://github.com/sanic-org/sanic"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.52.2","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.1","new_version":"4.2.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.49.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.0","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.9.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.14","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.3","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.5.1","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.2","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.8.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"7.0.2","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.2.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.2` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.8.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `7.0.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.11` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\n\nUpdates `sanic` from 24.12.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sanic-org/sanic/releases\"\u003esanic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate baseline for bandit to remove false positives by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3084\"\u003esanic-org/sanic#3084\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse secrets for generating unique ping payloads by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3091\"\u003esanic-org/sanic#3091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd some typing and fix some tests by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3094\"\u003esanic-org/sanic#3094\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix race condition in worker restart causing spawn failure by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in close_if_idle() when _http is not initialized by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3085\"\u003esanic-org/sanic#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typing for parameters of constructor of \u003ccode\u003eWorkerManager\u003c/code\u003e by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3083\"\u003esanic-org/sanic#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate str_to_bool function to include 'nope' as a valid false value by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd DetailedConverter for advanced environment variable conversion by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3079\"\u003esanic-org/sanic#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WorkerManager.kill on Windows by \u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esilent on RuntimeError when write_eof by \u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSingle letter typo fix for request.md documentation by \u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed incorrect links throughout the documentation by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange the log type to debug by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3064\"\u003esanic-org/sanic#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd correct path for Contribution guidelines by \u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link in website by \u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 'how we built sanic' sidebar link by \u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes sanic_ext - openapi component documentation by \u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate required Python to \u0026gt;=3.9 by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3095\"\u003esanic-org/sanic#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add automatic charset=UTF-8 to text content types by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3071\"\u003esanic-org/sanic#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade tracerite to latest by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3101\"\u003esanic-org/sanic#3101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter server error messaging by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3102\"\u003esanic-org/sanic#3102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTesting improvements by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3107\"\u003esanic-org/sanic#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove to 2-stage coverage check by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3108\"\u003esanic-org/sanic#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing bad term cleanup at exit by \u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows 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/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd daemon mode to Sanic CLI  by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3110\"\u003esanic-org/sanic#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove v3.9 and add v3.14 by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3115\"\u003esanic-org/sanic#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn task when creating a task by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3114\"\u003esanic-org/sanic#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix static file serving for directories with CJK characters by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3119\"\u003esanic-org/sanic#3119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicit symlink params for static files/dirs by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3117\"\u003esanic-org/sanic#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect LOG_EXTRA in all cases by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3120\"\u003esanic-org/sanic#3120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect KEEP_ALIVE config by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3121\"\u003esanic-org/sanic#3121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck state in shutdown for handling uvloop double kill by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3122\"\u003esanic-org/sanic#3122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for v25.12 release by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3124\"\u003esanic-org/sanic#3124\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/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\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/sanic-org/sanic/commit/785d77f8fe208576a48d339bd81d866021154092\"\u003e\u003ccode\u003e785d77f\u003c/code\u003e\u003c/a\u003e Prepare for v25.12 release (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3124\"\u003e#3124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/dc0939e682eeaace8b2832f634999f3390b1d5d1\"\u003e\u003ccode\u003edc0939e\u003c/code\u003e\u003c/a\u003e Check state in shutdown for handling uvloop double kill (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/a64dc641a8e4ad777a4602d2bdec53d736901472\"\u003e\u003ccode\u003ea64dc64\u003c/code\u003e\u003c/a\u003e Respect KEEP_ALIVE config (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/7c9b8461c0b4d300c15fe66b6f9b5d031aee59eb\"\u003e\u003ccode\u003e7c9b846\u003c/code\u003e\u003c/a\u003e Respect LOG_EXTRA in all cases (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3120\"\u003e#3120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/9aef932b843abff359f7a06ffc75dd45bab99e79\"\u003e\u003ccode\u003e9aef932\u003c/code\u003e\u003c/a\u003e Explicit symlink params for static files/dirs (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/41f2b38041e4bacc56aac1d3b99131ae183c27e8\"\u003e\u003ccode\u003e41f2b38\u003c/code\u003e\u003c/a\u003e Fix static file serving for directories with CJK characters (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/82d8cc4c98d5dd2cd807279b61615acaaf06d5bb\"\u003e\u003ccode\u003e82d8cc4\u003c/code\u003e\u003c/a\u003e Return task when creating a task (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3114\"\u003e#3114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/002c8c2d8a1c338a93b5b666514bdbef4ec6d1bc\"\u003e\u003ccode\u003e002c8c2\u003c/code\u003e\u003c/a\u003e Remove v3.9 and add v3.14 (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3115\"\u003e#3115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/3ae8f8ad7f4c12a75f67982b9456999d935bf5c0\"\u003e\u003ccode\u003e3ae8f8a\u003c/code\u003e\u003c/a\u003e Add daemon mode to Sanic CLI  (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/8ac64685c72395da1862a90e18883c94e71562d9\"\u003e\u003ccode\u003e8ac6468\u003c/code\u003e\u003c/a\u003e Bump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sanic-org/sanic/compare/v24.12.0...v25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.28.5 to 0.52.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\u003e\n\u003cstrong\u003eAfter:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingStatusUnionTitle(BaseModel):\n    __root__: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle\n    ) = Field(..., title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.2\"\u003e0.52.2\u003c/a\u003e - 2026-01-05\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.1\"\u003e0.52.1\u003c/a\u003e - 2026-01-03\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.0\"\u003e0.52.0\u003c/a\u003e - 2026-01-02\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\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/koxudaxi/datamodel-code-generator/commit/794e02bdd8ed89fc2030d4b323df8480edae0335\"\u003e\u003ccode\u003e794e02b\u003c/code\u003e\u003c/a\u003e Fix URL port handling in get_url_path_parts (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/61c08d6fa777f1560e0c55151ae1c42037c469cb\"\u003e\u003ccode\u003e61c08d6\u003c/code\u003e\u003c/a\u003e Migrate from pyright to ty type checker (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2928\"\u003e#2928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/ee08fff3867457b6a09c0ca4fbfbd23ee128617e\"\u003e\u003ccode\u003eee08fff\u003c/code\u003e\u003c/a\u003e Fix release-draft workflow to use pull_request_target and increase max_turns ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5acb17838e7fb8047f36a1bebcdfb2f432dd3b16\"\u003e\u003ccode\u003e5acb178\u003c/code\u003e\u003c/a\u003e Add TypedDict closed and extra_items support (PEP 728) (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/54c3ed9fcc073f79b5ffd2366cdc7f97f99ae4d2\"\u003e\u003ccode\u003e54c3ed9\u003c/code\u003e\u003c/a\u003e fix: Handle class name prefix correctly in GraphQL parser (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/58e73ed8740d589623647008bb1fe230bac1aeda\"\u003e\u003ccode\u003e58e73ed\u003c/code\u003e\u003c/a\u003e Add \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/960f7f932b253e3f78771ff907409a1cb21d73d6\"\u003e\u003ccode\u003e960f7f9\u003c/code\u003e\u003c/a\u003e Add support for multiple base classes in base_class_map and customBasePath (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1b931d5f81e81f3f93582d8aac70e75ab1708a5d\"\u003e\u003ccode\u003e1b931d5\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.52.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/361fb5aa6a63ae570132daee0c587e633f62da6b\"\u003e\u003ccode\u003e361fb5a\u003c/code\u003e\u003c/a\u003e Add deprecation warning for Pydantic v2 without --use-annotated (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/69c51fdbbb60dc4c16d2a38914ab31145d2b2b7e\"\u003e\u003ccode\u003e69c51fd\u003c/code\u003e\u003c/a\u003e Add deprecated field support for Pydantic v2 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.28.5...0.52.2\"\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.40 to 2.0.45\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.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\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 calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\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 in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\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 Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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 `alembic` from 1.15.2 to 1.18.0\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.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\n\u003ccode\u003ealembic-utils\u003c/code\u003e, which continue to work as before; however, such add-ons\nhave the option to provide plugin entrypoints going forward.\u003c/p\u003e\n\u003cp\u003eAs part of this change, Alembic's autogenerate compare functionality is\nreorganized into a series of internal plugins under the\n\u003ccode\u003ealembic.autogenerate\u003c/code\u003e namespace, which may be individually or\ncollectively identified for inclusion and/or exclusion within the\n\u003ccode\u003eEnvironmentContext.configure()\u003c/code\u003e call using a new parameter\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e. This\nparameter is also where third party comparison plugins may also be\nindicated.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ealembic.plugins.toplevel\u003c/code\u003e for complete documentation on\nthe new \u003ccode\u003ePlugin\u003c/code\u003e class as well as autogenerate-specific usage\ninstructions.\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/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\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/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomple...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1164","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1164","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1164/packages"}},{"old_version":"4.9.0","new_version":"7.1.0","update_type":"major","path":null,"pr_created_at":"2026-01-04T01:28:19.000Z","version_change":"4.9.0 → 7.1.0","issue":{"uuid":"3778660126","node_id":"PR_kwDOQsrcR867ZXsQ","number":52,"state":"closed","title":"chore(deps): Bump the python-dependencies 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-01-05T03:01:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-04T01:28:19.000Z","updated_at":"2026-01-05T03:01:35.000Z","time_to_close":91994,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-dependencies","update_count":14,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.31.0","new_version":"0.40.0"},{"name":"python-gitlab","old_version":"4.9.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"sqlalchemy","old_version":"2.0.35","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.5.2","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"alembic","old_version":"1.13.1","new_version":"1.17.2","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.128.0` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.31.0` | `0.40.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.9.0` | `7.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.35` | `2.0.45` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.2` | `2.12.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.21` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `46.0.3` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.1` | `1.17.2` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.31.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.31.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab` from 4.9.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.9.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.35 to 2.0.45\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.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\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 calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\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 in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\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 Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.9.2 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.5.2 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.5.2...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.12 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003eKludex/python-multipart#142\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/Mr-Sunglasses\"\u003e\u003ccode\u003e@​Mr-Sunglasses\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/185\"\u003eKludex/python-multipart#185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003eKludex/python-multipart#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003eKludex/python-multipart#189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name by \u003ca href=\"https://github.com/defnull\"\u003e\u003ccode\u003e@​defnull\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003eKludex/python-multipart#182\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003eKludex/python-multipart#177\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.17 (2024-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003e#182\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.16 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003e#177\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.15 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.14 (2024-10-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix import scheme for \u003ccode\u003emultipart\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/168\"\u003e#168\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.13 (2024-10-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename import to \u003ccode\u003epython_multipart\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/166\"\u003e#166\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/...\n\n_Description has been truncated_","html_url":"https://github.com/MrZoller/mirror-maestro/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrZoller%2Fmirror-maestro/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"}},{"old_version":"4.9.0","new_version":"7.1.0","update_type":"major","path":null,"pr_created_at":"2026-01-01T20:53:29.000Z","version_change":"4.9.0 → 7.1.0","issue":{"uuid":"3775182382","node_id":"PR_kwDOQsrcR867OkBQ","number":43,"state":"closed","title":"chore(deps): Bump the python-dependencies group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-04T01:27:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T20:53:29.000Z","updated_at":"2026-01-04T01:27:36.000Z","time_to_close":189246,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-dependencies","update_count":13,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.31.0","new_version":"0.40.0"},{"name":"python-gitlab","old_version":"4.9.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"sqlalchemy","old_version":"2.0.35","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.5.2","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.21","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"cryptography","old_version":"43.0.1","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.128.0` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.31.0` | `0.40.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.9.0` | `7.1.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.35` | `2.0.45` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.2` | `2.12.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.21` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `43.0.1` | `46.0.3` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.31.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\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/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.31.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab` from 4.9.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.9.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.35 to 2.0.45\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.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\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 calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\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 in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\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 Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.9.2 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.5.2 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.5.2...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.12 to 0.0.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003eKludex/python-multipart#216\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/203\"\u003eKludex/python-multipart#203\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003eKludex/python-multipart#142\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/Mr-Sunglasses\"\u003e\u003ccode\u003e@​Mr-Sunglasses\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/185\"\u003eKludex/python-multipart#185\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003eKludex/python-multipart#193\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003eKludex/python-multipart#189\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name by \u003ca href=\"https://github.com/defnull\"\u003e\u003ccode\u003e@​defnull\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003eKludex/python-multipart#182\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003eKludex/python-multipart#177\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.17 (2024-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003e#182\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.16 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003e#177\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.15 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.14 (2024-10-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix import scheme for \u003ccode\u003emultipart\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/168\"\u003e#168\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.13 (2024-10-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename import to \u003ccode\u003epython_multipart\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/166\"\u003e#166\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/1f72955602445706b5517a6f58a720796ad3d96a\"\u003e\u003ccode\u003e1f72955\u003c/code\u003e\u003c/a\u003e Version 0.0.21 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/47ecfed3533ed8dcafd800508dbf594438fd0949\"\u003e\u003ccode\u003e47ecfed\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop EOL 3.8 and 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f18b70941b727c947f7e6b17e1c3321f5ad3afb6\"\u003e\u003ccode\u003ef18b709\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b388e9a7a82605cc8613798926afe8f6074cb372\"\u003e\u003ccode\u003eb388e9a\u003c/code\u003e\u003c/a\u003e chore: use depedency-groups in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6113e750971918a51f79c3bb2585e95ed1c53245\"\u003e\u003ccode\u003e6113e75\u003c/code\u003e\u003c/a\u003e Bump the...\n\n_Description has been truncated_","html_url":"https://github.com/MrZoller/mirror-maestro/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrZoller%2Fmirror-maestro/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"}},{"old_version":"6.5.0","new_version":"7.1.0","update_type":"major","path":null,"pr_created_at":"2026-01-01T11:01:02.000Z","version_change":"6.5.0 → 7.1.0","issue":{"uuid":"3774465043","node_id":"PR_kwDOAr_oDM67MPUI","number":543,"state":"closed","title":"Bump python-gitlab from 6.5.0 to 7.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-20T22:42:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T11:01:02.000Z","updated_at":"2026-02-20T22:42:44.000Z","time_to_close":4362100,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 6.5.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/CLARIAH/grlc/pull/543","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CLARIAH%2Fgrlc/issues/543","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/543/packages"}},{"old_version":"7.0.0","new_version":"7.1.0","update_type":"minor","path":null,"pr_created_at":"2026-01-01T01:25:59.000Z","version_change":"7.0.0 → 7.1.0","issue":{"uuid":"3773993782","node_id":"PR_kwDOIibu3867Kvc3","number":2,"state":"closed","title":"Bump the all-pip-packages group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T17:54:12.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T01:25:59.000Z","updated_at":"2026-01-05T17:54:13.000Z","time_to_close":404893,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-pip-packages","update_count":5,"packages":[{"name":"python-gnupg","old_version":"0.5.5","new_version":"0.5.6","repository_url":"https://github.com/vsajip/python-gnupg"},{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"black","old_version":"25.11.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"boto3","old_version":"1.42.1","new_version":"1.42.19","repository_url":"https://github.com/boto/boto3"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-pip-packages group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-gnupg](https://github.com/vsajip/python-gnupg) | `0.5.5` | `0.5.6` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `7.0.0` | `7.1.0` |\n| [black](https://github.com/psf/black) | `25.11.0` | `25.12.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.1` | `1.42.19` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n\n\nUpdates `python-gnupg` from 0.5.5 to 0.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vsajip/python-gnupg/releases\"\u003epython-gnupg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eEnhancement and bug-fix release 0.5.6\u003c/h2\u003e\n\u003cp\u003eThis is an enhancement and bug-fix release, and all users are encouraged to upgrade.\u003c/p\u003e\n\u003cp\u003eBrief summary:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure capability, fingerprint and keygrip are added to subkey_info.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet username in the result when Verify uses a signing key that has expired or been revoked. Thanks to Steven Galgano for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release has been signed with my code signing key:\u003c/p\u003e\n\u003cp\u003eVinay Sajip (CODE SIGNING KEY) \u0026lt;vinay_sajip at yahoo.co.uk\u0026gt;\nFingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86\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/vsajip/python-gnupg/commit/54e9ca0f80f5a0d0b4252e13d5c431f3f5f40c71\"\u003e\u003ccode\u003e54e9ca0\u003c/code\u003e\u003c/a\u003e Changes for 0.5.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8825037344b03473595e694e01a1e0fa5e74023f\"\u003e\u003ccode\u003e8825037\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/909cf606f07097feb5316c265f0108a4c753f9a5\"\u003e\u003ccode\u003e909cf60\u003c/code\u003e\u003c/a\u003e Remove Travis CI and AppVeyor config (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/f0bfa1acb7000cfff3bfdec5d9bff15299c364d3\"\u003e\u003ccode\u003ef0bfa1a\u003c/code\u003e\u003c/a\u003e Drop redundant \u003ccode\u003ewheel\u003c/code\u003e from PEP 517 build deps (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/9b0399b4684a1f8d9e763c99c94cd9baed5ebc34\"\u003e\u003ccode\u003e9b0399b\u003c/code\u003e\u003c/a\u003e Fix typo: spell decrypted_data correctly in the documentation. (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/fcedea7ac922cf5113c28beff16e59340fa4731c\"\u003e\u003ccode\u003efcedea7\u003c/code\u003e\u003c/a\u003e Added capability to subkey_info, reformatted code.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/eca04eb5c9f5d251bb32a183427acb8fbe564102\"\u003e\u003ccode\u003eeca04eb\u003c/code\u003e\u003c/a\u003e Set username when Verify uses a signing key that has expired or been (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/acfa89869940b81a96c6eb1e475c1c4f645ae879\"\u003e\u003ccode\u003eacfa898\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure fingerprint and keygrip are added to subkey_info.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8148db43edf62ca8310000f0aaae138784c0e51b\"\u003e\u003ccode\u003e8148db4\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/2e829849129d4789b8877fe621349b09ca5b29cd\"\u003e\u003ccode\u003e2e82984\u003c/code\u003e\u003c/a\u003e Added tag 0.5.5 for changeset 1b77f5b12ad7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vsajip/python-gnupg/compare/0.5.5...0.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.11.0 to 25.12.0\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\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\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/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.11.0...25.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.1 to 1.42.19\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/98bf6652e6ae1c14f25e4a2752d49b8279222702\"\u003e\u003ccode\u003e98bf665\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.19'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a86b3cf9e203e89dd4f87a0a5b2db0bf0fa73c11\"\u003e\u003ccode\u003ea86b3cf\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a96980b209925aa1e51355309978ac87f85c2cb9\"\u003e\u003ccode\u003ea96980b\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/3a1085f1892c22c9596694c9c7072308fb30002c\"\u003e\u003ccode\u003e3a1085f\u003c/code\u003e\u003c/a\u003e Remove elastictranscoder from documentation (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/83130e5c5b393c9c3faf64d252cf3c90ce7fe597\"\u003e\u003ccode\u003e83130e5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.18'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/2ad1b19890c5ef492e3103bdd08915852d992675\"\u003e\u003ccode\u003e2ad1b19\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.18' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/56a53e6a42b1bf071b00a0bd240aa1a0e8f89924\"\u003e\u003ccode\u003e56a53e6\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/960d57e96fde8e1dfe7d9402bb87f313cbb2f559\"\u003e\u003ccode\u003e960d57e\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/9a88f847b55bca7702fec6d3f01aee9933dc1910\"\u003e\u003ccode\u003e9a88f84\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.17'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c302093c8a68dec9517437a225ec37d89a85eba8\"\u003e\u003ccode\u003ec302093\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.17' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.1...1.42.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.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.19.0...v1.19.1\"\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/actions-marketplace-validations/JuliaRegistries_TagBot/pull/2","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions-marketplace-validations%2FJuliaRegistries_TagBot/issues/2","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2/packages"}},{"old_version":"5.6.0","new_version":"7.1.0","update_type":"major","path":null,"pr_created_at":"2025-12-29T14:02:35.000Z","version_change":"5.6.0 → 7.1.0","issue":{"uuid":"3767493267","node_id":"PR_kwDOFZdLEM661H7D","number":147,"state":"closed","title":"Bump python-gitlab from 5.6.0 to 7.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-28T14:03:21.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-29T14:02:35.000Z","updated_at":"2026-01-28T14:03:23.000Z","time_to_close":2592046,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 5.6.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=5.6.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/uva/GLASS-gitops-updater/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/uva%2FGLASS-gitops-updater/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"}},{"old_version":"7.0.0","new_version":"7.1.0","update_type":"minor","path":null,"pr_created_at":"2025-12-29T11:02:20.000Z","version_change":"7.0.0 → 7.1.0","issue":{"uuid":"3767110468","node_id":"PR_kwDOBgEVAc66z28S","number":1145,"state":"open","title":"build(deps): bump the python-gitlab group with 2 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":"2025-12-29T11:02:20.000Z","updated_at":"2026-01-03T15:41:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-gitlab","update_count":2,"packages":[{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-gitlab group with 2 updates: [python-gitlab](https://github.com/python-gitlab/python-gitlab) and [python-gitlab[graphql]](https://github.com/python-gitlab/python-gitlab).\n\nUpdates `python-gitlab` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-gitlab[graphql]` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab[graphql]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab[graphql]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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/gitlabform/gitlabform/pull/1145","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gitlabform%2Fgitlabform/issues/1145","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1145/packages"}},{"old_version":"7.0.0","new_version":"7.1.0","update_type":"minor","path":null,"pr_created_at":"2025-12-29T05:38:57.000Z","version_change":"7.0.0 → 7.1.0","issue":{"uuid":"3766463988","node_id":"PR_kwDOQkZ5D866xvDg","number":12,"state":"open","title":"deps: bump python-gitlab from 7.0.0 to 7.1.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-29T05:38:57.000Z","updated_at":"2025-12-29T05:38:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 7.0.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=7.0.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/Joeri-Abbo/git-webhook-scanner/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joeri-Abbo%2Fgit-webhook-scanner/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"7.0.0","new_version":"7.1.0","update_type":"minor","path":null,"pr_created_at":"2025-12-29T05:08:07.000Z","version_change":"7.0.0 → 7.1.0","issue":{"uuid":"3766424709","node_id":"PR_kwDOL0ejWM66xm0B","number":468,"state":"closed","title":"Bump python-gitlab from 7.0.0 to 7.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-30T04:51:46.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-29T05:08:07.000Z","updated_at":"2025-12-30T04:51:48.000Z","time_to_close":85419,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":null,"ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 7.0.0 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\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/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=7.0.0\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/OpenSpeleo/SpeleoDB/pull/468","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSpeleo%2FSpeleoDB/issues/468","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/468/packages"}},{"old_version":"2.10.1","new_version":"7.1.0","update_type":"major","path":"/dependencies/python","pr_created_at":"2025-12-29T00:05:47.000Z","version_change":"2.10.1 → 7.1.0","issue":{"uuid":"3766131492","node_id":"PR_kwDOFQcaxs66wrMN","number":2517,"state":"open","title":"Bump python-gitlab from 2.10.1 to 7.1.0 in /dependencies/python","user":"dependabot[bot]","labels":["dependencies","python","O: stale 🤖"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-29T00:05:47.000Z","updated_at":"2026-03-05T00:02:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"2.10.1","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/dependencies/python","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 2.10.1 to 7.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v2.10.1...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=2.10.1\u0026new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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 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\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/23andMe/super-linter/pull/2517","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/23andMe%2Fsuper-linter/issues/2517","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2517/packages"}},{"old_version":"5.6.0","new_version":"7.0.0","update_type":"major","path":"/backend","pr_created_at":"2025-12-08T09:50:16.000Z","version_change":"5.6.0 → 7.0.0","issue":{"uuid":"3705559591","node_id":"PR_kwDOQQZ-pM63orXy","number":1,"state":"open","title":"chore(deps): Bump python-gitlab from 5.6.0 to 7.0.0 in /backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-08T09:50:16.000Z","updated_at":"2025-12-08T09:50:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 5.6.0 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0\"\u003ev6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e: Update actions/setup-python action to v6 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/89cdb788feec5fb995c7de6fec6afd83844c2618\"\u003e\u003ccode\u003e89cdb78\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement missing arguments in users 'list'\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Sort 'user list' arguments against documentation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.0 (2025-08-28)\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/python-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f78a8731a7c51b773e90276f765309324403a080\"\u003e\u003ccode\u003ef78a873\u003c/code\u003e\u003c/a\u003e chore: release v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e docs(pull_mirror): fix incorrect start() method usage example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=5.6.0\u0026new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/chinmay404/climate_kic_AI_NotebookLLM/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chinmay404%2Fclimate_kic_AI_NotebookLLM/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"4.5.0","new_version":"7.0.0","update_type":"major","path":null,"pr_created_at":"2025-12-08T06:28:32.000Z","version_change":"4.5.0 → 7.0.0","issue":{"uuid":"3704855465","node_id":"PR_kwDOCBOG5c63mSwT","number":2069,"state":"closed","title":"chore: bump the python group across 2 directories with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-12T06:26:32.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T06:28:32.000Z","updated_at":"2025-12-12T06:26:34.000Z","time_to_close":345480,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: bump","group_name":"python","update_count":28,"packages":[{"name":"python-gitlab","old_version":"4.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"kubernetes","old_version":"30.1.0","new_version":"34.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"gunicorn","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"pyyaml","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.3.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"sentry-sdk","old_version":"2.5.1","new_version":"2.47.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"gevent","old_version":"24.2.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"},{"name":"apispec-webframeworks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/marshmallow-code/apispec-webframeworks"},{"name":"webargs","old_version":"8.4.0","new_version":"8.7.1","repository_url":"https://github.com/marshmallow-code/webargs"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"marshmallow","old_version":"3.21.3","new_version":"4.1.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"apispec","old_version":"6.6.1","new_version":"6.9.0","repository_url":"https://github.com/marshmallow-code/apispec"},{"name":"importlib-metadata","old_version":"7.1.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"dataconf","old_version":"3.2.0","new_version":"3.6.0","repository_url":"https://github.com/zifeo/dataconf"},{"name":"python-ulid","old_version":"2.7.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"cryptography","old_version":"42.0.8","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"chartpress","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/jupyterhub/chartpress"},{"name":"pytest","old_version":"8.2.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"3.7.1","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-cov","old_version":"5.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"semver","old_version":"3.0.2","new_version":"3.0.4","repository_url":"https://github.com/python-semver/python-semver"},{"name":"ruff","old_version":"0.4.9","new_version":"0.14.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"responses","old_version":"0.25.3","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.5.0` | `7.0.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `34.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.1` | `6.0.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.3.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.47.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [apispec-webframeworks](https://github.com/marshmallow-code/apispec-webframeworks) | `1.1.0` | `1.2.0` |\n| [webargs](https://github.com/marshmallow-code/webargs) | `8.4.0` | `8.7.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.21.3` | `4.1.1` |\n| [apispec](https://github.com/marshmallow-code/apispec) | `6.6.1` | `6.9.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.1.0` | `8.7.0` |\n| [dataconf](https://github.com/zifeo/dataconf) | `3.2.0` | `3.6.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `2.7.0` | `3.1.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.8` | `46.0.3` |\n| [chartpress](https://github.com/jupyterhub/chartpress) | `2.2.0` | `2.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.2.2` | `9.0.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.7.1` | `4.5.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `5.0.0` | `7.0.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [semver](https://github.com/python-semver/python-semver) | `3.0.2` | `3.0.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.8` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.25.8` |\n\nBumps the python group with 6 updates in the /git_services directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.47.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.8` |\n| [renku](https://github.com/swissdatasciencecenter/renku-python) | `2.9.2` | `2.9.4` |\n\n\nUpdates `python-gitlab` from 4.5.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0\"\u003ev6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e: Update actions/setup-python action to v6 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/89cdb788feec5fb995c7de6fec6afd83844c2618\"\u003e\u003ccode\u003e89cdb78\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement missing arguments in users 'list'\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Sort 'user list' arguments against documentation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.0 (2025-08-28)\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/python-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f78a8731a7c51b773e90276f765309324403a080\"\u003e\u003ccode\u003ef78a873\u003c/code\u003e\u003c/a\u003e chore: release v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e docs(pull_mirror): fix incorrect start() method usage example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.0.3 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.1/\"\u003ehttps://pypi.org/project/Flask/3.1.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/flask/milestone/36?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/36?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. GHSA-4grg-w6v8-c28g\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5645\"\u003e#5645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands are shown. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5673\"\u003e#5673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return \u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier for Quart. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5659\"\u003e#5659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.0/\"\u003ehttps://pypi.org/project/Flask/3.1.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/33?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/33?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5623\"\u003e#5623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases. Werkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5624\"\u003e#5624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5633\"\u003e#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option responses. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5496\"\u003e#5496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and \u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when opening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5504\"\u003e#5504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only through the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added \u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation about resource limits to the security page. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5625\"\u003e#5625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the \u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5472\"\u003e#5472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files. \u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless \u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5628\"\u003e#5628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old secret keys that can still be used for unsigning. Extensions will need to add support. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5621\"\u003e#5621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how setting \u003ccode\u003ehost_matching=True\u003c/code\u003e or \u003ccode\u003esubdomain_matching=False\u003c/code\u003e interacts with \u003ccode\u003eSERVER_NAME\u003c/code\u003e. Setting \u003ccode\u003eSERVER_NAME\u003c/code\u003e no longer restricts requests to only that domain. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5553\"\u003e#5553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.trusted_hosts\u003c/code\u003e is checked during routing, and can be set through the \u003ccode\u003eTRUSTED_HOSTS\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5636\"\u003e#5636\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via\n\u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. :ghsa:\u003ccode\u003e4grg-w6v8-c28g\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e5645\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands\nare shown. :issue:\u003ccode\u003e5673\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return\n\u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier\nfor Quart. :pr:\u003ccode\u003e5659\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e5623\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases.\nWerkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. :pr:\u003ccode\u003e5624,5633\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option\nresponses. :pr:\u003ccode\u003e5496\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and\n\u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when\nopening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. :issue:\u003ccode\u003e5504\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only\nthrough the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added\n\u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation\nabout resource limits to the security page. :issue:\u003ccode\u003e5625\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the\n\u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. :issue:\u003ccode\u003e5472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files.\n\u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless\n\u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. :issue:\u003ccode\u003e5628\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old\nsecret keys that can still be used for unsigning. Extensions will need to\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.0.3...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 30.1.0 to 34.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0.zip\ncd client-python-v34.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0b1.zip\ncd client-python-v34.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0a1.zip\ncd client-python-v34.1.0a1\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/kubernetes-client/python/blob/master/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev34.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch1\u003ev34.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eomitempty\u003c/code\u003e and \u003ccode\u003eopt\u003c/code\u003e tag to the API \u003ccode\u003ev1beta2\u003c/code\u003e AdminAccess type in the \u003ccode\u003eDeviceRequestAllocationResult\u003c/code\u003e struct. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132338\"\u003ekubernetes/kubernetes#132338\u003c/a\u003e, \u003ca href=\"https://github.com/PatrickLaabs\"\u003e\u003ccode\u003e@​PatrickLaabs\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003eruntime.ApplyConfiguration\u003c/code\u003e interface implemented by all generated apply configuration types. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132194\"\u003ekubernetes/kubernetes#132194\u003c/a\u003e, \u003ca href=\"https://github.com/alvaroaleman\"\u003e\u003ccode\u003e@​alvaroaleman\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Instrumentation]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130387\"\u003ekubernetes/kubernetes#130387\u003c/a\u003e, \u003ca href=\"https://github.com/shiya0705\"\u003e\u003ccode\u003e@​shiya0705\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a mechanism for configurable container restarts: \u003cem\u003econtainer-level restart rules\u003c/em\u003e. This was an alpha feature behind the \u003ccode\u003eContainerRestartRules\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132642\"\u003ekubernetes/kubernetes#132642\u003c/a\u003e, \u003ca href=\"https://github.com/yuanwang04\"\u003e\u003ccode\u003e@​yuanwang04\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003eFileKeyRef\u003c/code\u003e field to containers, allowing them to load variables from files by setting this field.\u003c/p\u003e\n\u003cp\u003eIntroduced the \u003ccode\u003eEnvFiles\u003c/code\u003e feature gate to govern activation of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132626\"\u003ekubernetes/kubernetes#132626\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded driver-owned fields in \u003ccode\u003eResourceSlice\u003c/code\u003e to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded user-owned fields in \u003ccode\u003eResourceClaim\u003c/code\u003e to specify resource requirements against each device capacity.\u003c/li\u003e\n\u003cli\u003eAdded scheduler-owned field in \u003ccode\u003eResourceClaim.Status\u003c/code\u003e to specify how much device capacity is reserved for a specific request.\u003c/li\u003e\n\u003cli\u003eAdded an additional identifier to \u003ccode\u003eResourceClaim.Status\u003c/code\u003e for the device supports multiple allocations.\u003c/li\u003e\n\u003cli\u003eAdded a new constraint type to enforce uniqueness of specified attributes across all allocated devices. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132522\"\u003ekubernetes/kubernetes#132522\u003c/a\u003e, \u003ca href=\"https://github.com/sunya-ch\"\u003e\u003ccode\u003e@​sunya-ch\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded new optional APIs in \u003ccode\u003eResouceSlice.Basic\u003c/code\u003e and \u003ccode\u003eResourceClaim.Status.AllocatedDeviceStatus\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130160\"\u003ekubernetes/kubernetes#130160\u003c/a\u003e, \u003ca href=\"https://github.com/KobayashiD27\"\u003e\u003ccode\u003e@​KobayashiD27\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for specifying \u003ccode\u003econtrolplane\u003c/code\u003e or \u003ccode\u003ecluster\u003c/code\u003e egress selectors in JWT authenticators via the \u003ccode\u003eissuer.egressSelectorType\u003c/code\u003e field in the \u003ccode\u003eAuthenticationConfiguration.jwt\u003c/code\u003e array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the \u003ccode\u003eStructuredAuthenticationConfigurationEgressSelector\u003c/code\u003e beta feature gate (enabled by default). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132768\"\u003ekubernetes/kubernetes#132768\u003c/a\u003e, \u003ca href=\"https://github.com/enj\"\u003e\u003ccode\u003e@​enj\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the \u003ccode\u003epod.status.containerStatuses.allocatedResourcesStatus\u003c/code\u003e field. This required the DRA plugin to implement the new v1alpha1 \u003ccode\u003eNodeHealth\u003c/code\u003e gRPC service. This feature was controlled by the \u003ccode\u003eResourceHealthStatus\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130606\"\u003ekubernetes/kubernetes#130606\u003c/a\u003e, \u003ca href=\"https://github.com/Jpsassine\"\u003e\u003ccode\u003e@​Jpsassine\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132771\"\u003ekubernetes/kubernetes#132771\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded validation to reject Pods using the \u003ccode\u003ePodLevelResources\u003c/code\u003e feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a \u003ccode\u003ePod.spec.os.name\u003c/code\u003e targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133046\"\u003ekubernetes/kubernetes#133046\u003c/a\u003e, \u003ca href=\"https://github.com/toVersus\"\u003e\u003ccode\u003e@​toVersus\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded warnings when creating headless service with set \u003ccode\u003eloadBalancerIP\u003c/code\u003e,\u003ccode\u003eexternalIPs\u003c/code\u003e and/or \u003ccode\u003eSessionAffinity\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132214\"\u003ekubernetes/kubernetes#132214\u003c/a\u003e, \u003ca href=\"https://github.com/Peac36\"\u003e\u003ccode\u003e@​Peac36\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed \u003ccode\u003epvc.spec.VolumeAttributesClassName\u003c/code\u003e to change from non-nil to nil. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132106\"\u003ekubernetes/kubernetes#132106\u003c/a\u003e, \u003ca href=\"https://github.com/AndrewSirenko\"\u003e\u003ccode\u003e@​AndrewSirenko\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed setting the \u003ccode\u003ehostnameOverride\u003c/code\u003e field in \u003ccode\u003ePodSpec\u003c/code\u003e to specify any RFC 1123 DNS subdomain as the pod's hostname. The \u003ccode\u003eHostnameOverride\u003c/code\u003e feature gate was introduced to control enablement of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132558\"\u003ekubernetes/kubernetes#132558\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Network, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic for \u003ccode\u003eEviction Manager\u003c/code\u003e helper functions. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132277\"\u003ekubernetes/kubernetes#132277\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131089\"\u003ekubernetes/kubernetes#131089\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrected the documentation to clarify that \u003ccode\u003epodSelector\u003c/code\u003e is optional and described its default behavior. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131354\"\u003ekubernetes/kubernetes#131354\u003c/a\u003e, \u003ca href=\"https://github.com/tomoish\"\u003e\u003ccode\u003e@​tomoish\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\nbefore updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u0026lt; 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u0026gt;= 1.32. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132000\"\u003ekubernetes/kubernetes#132000\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting with Kubernetes 1.34, the alpha-level \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e label has been updated to \u003ccode\u003eresource.kubernetes.io/admin-access\u003c/code\u003e. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e when no downgrade is going to happen anymore. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131996\"\u003ekubernetes/kubernetes#131996\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's \u003ccode\u003eFilterTimeout\u003c/code\u003e. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u0026lt;= 1.33. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132033\"\u003ekubernetes/kubernetes#132033\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130593\"\u003ekubernetes/kubernetes#130593\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes  \u0026gt;= 1.32 use the v1beta1 API and continue to be supported. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132574\"\u003ekubernetes/kubernetes#132574\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated \u003ccode\u003eStreamingConnectionIdleTimeout\u003c/code\u003e field of the kubelet config. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131992\"\u003ekubernetes/kubernetes#131992\u003c/a\u003e, \u003ca href=\"https://github.com/lalitc375\"\u003e\u003ccode\u003e@​lalitc375\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the \u003cem\u003estructured parameters\u003c/em\u003e flavor of DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132706\"\u003ekubernetes/kubernetes#132706\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnabled kube-apiserver support for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e and \u003ccode\u003ePodCertificate\u003c/code\u003e projected volumes (behind the \u003ccode\u003ePodCertificateRequest\u003c/code\u003e feature gate). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128010\"\u003ekubernetes/kubernetes#128010\u003c/a\u003e, \u003ca href=\"https://github.com/ahmedtd\"\u003e\u003ccode\u003e@​ahmedtd\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended resources backed by DRA feature allowed cluster operator to specify \u003ccode\u003eextendedResourceName\u003c/code\u003e in \u003ccode\u003eDeviceClass\u003c/code\u003e, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eNodeResourcesFit\u003c/code\u003e plugin scoring didn't work for extended resources backed by DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130653\"\u003ekubernetes/kubernetes#130653\u003c/a\u003e, \u003ca href=\"https://github.com/yliaog\"\u003e\u003ccode\u003e@​yliaog\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132040\"\u003ekubernetes/kubernetes#132040\u003c/a\u003e, \u003ca href=\"https://github.com/avrittrohwer\"\u003e\u003ccode\u003e@​avrittrohwer\u003c/code\u003e\u003c/a\u003e) [SIG Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132895\"\u003ekubernetes/kubernetes#132895\u003c/a\u003e, \u003ca href=\"https://github.com/yue9944882\"\u003e\u003ccode\u003e@​yue9944882\u003c/code\u003e\u003c/a\u003e) [SIG Node and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed prerelease lifecycle for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133350\"\u003ekubernetes/kubernetes#133350\u003c/a\u003e, \u003ca href=\"https://github.com/carlory\"\u003e\u003ccode\u003e@​carlory\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIntroduced OpenAPI format support for \u003ccode\u003ek8s-short-name\u003c/code\u003e and \u003ccode\u003ek8s-long-name\u003c/code\u003e in CustomResourceDefinition schemas. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132504\"\u003ekubernetes/kubernetes#132504\u003c/a\u003e, \u003ca href=\"https://github.com/jpbetz\"\u003e\u003ccode\u003e@​jpbetz\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]\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/kubernetes-client/python/commit/5b23a44aa06010ac6ffe423d7b0e090caf7882ff\"\u003e\u003ccode\u003e5b23a44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2455\"\u003e#2455\u003c/a\u003e from yliaog/automated-release-of-34.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/8866972d0e42684f289f14a30e9db645873c5a07\"\u003e\u003ccode\u003e8866972\u003c/code\u003e\u003c/a\u003e Updated the compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9bb20149e75c65640b868d6d0eb389d2a8930059\"\u003e\u003ccode\u003e9bb2014\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/efa2b2610b4b4223fd06137b0c7f6c326338d669\"\u003e\u003ccode\u003eefa2b26\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/b374f2ea67b2caa183e52f1e1ce57e27aaadac89\"\u003e\u003ccode\u003eb374f2e\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d14e9fbdd7bce1ed3c5bac4cb54caac3605e353\"\u003e\u003ccode\u003e9d14e9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2452\"\u003e#2452\u003c/a\u003e from yliaog/automated-release-of-34.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/749ec15345a6a1d1daa2fbab7779dd554669335c\"\u003e\u003ccode\u003e749ec15\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/14901c6b346a14a4b925435c124bd98dc8abe247\"\u003e\u003ccode\u003e14901c6\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fe16bed8478ea77dd94ee544d94fc93093745447\"\u003e\u003ccode\u003efe16bed\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0b1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/c66f45a265b851aeb13d6986eb7c61df9562ec0d\"\u003e\u003ccode\u003ec66f45a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2448\"\u003e#2448\u003c/a\u003e from yliaog/automated-release-of-34.1.0a1-upstream-r...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v30.1.0...v34.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\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/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\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.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of 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/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\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.1 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\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Cython 3.x and Python 3.13.\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.1...6.0.2\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.2rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for extension build with Cython 3.x\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdded PyPI wheels for musllinux on aarch64\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/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\u003cp\u003e6.0.2 (2024-08-06)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/808\"\u003eyaml/pyyaml#808\u003c/a\u003e -- Support for Cython 3.x and Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/41309b0bcb4559edb1d691d47199035ef539d785\"\u003e\u003ccode\u003e41309b0\u003c/code\u003e\u003c/a\u003e Release 6.0.2 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/dd9f0e1236775dcce682c91823e009556ce2a271\"\u003e\u003ccode\u003edd9f0e1\u003c/code\u003e\u003c/a\u003e 6.0.2rc1 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/809\"\u003e#809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/f5527a26d518b3e9c66f9211e0af00c83f09a97e\"\u003e\u003ccode\u003ef5527a2\u003c/code\u003e\u003c/a\u003e disable CI trigger on PR edits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/b4d80a742142004490d2da7691d534923820b81c\"\u003e\u003ccode\u003eb4d80a7\u003c/code\u003e\u003c/a\u003e Python 3.12 + musllinux_1_1_x86_64 wheel support\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.1...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.2.2 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ca href=\"https://opencollective.com/urllib3/contributions/815307\"\u003esponsored by LaunchDarkly\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2868\"\u003eurllib3/urllib3#2868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly requests and streaming, and makes it possible to use in Node.js if you launch it as node \u003ccode\u003e--experimental-wasm-stack-switching\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3400\"\u003eurllib3/urllib3#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3285\"\u003eurllib3/urllib3#3285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3480\"\u003eurllib3/urllib3#3480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3489\"\u003eurllib3/urllib3#3489\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3492\"\u003eurllib3/urllib3#3492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1. All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (`\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3413\"\u003e#3413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3448\"\u003e#3448\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3425\"\u003e#3425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage. Now only accepting supported h2 major version 4.x.x. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3290\"\u003e#3290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a probing mechanism for determining whether a given target origin supports HTTP/2 via ALPN. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3301\"\u003e#3301\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0 (2024-12-22)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ccode\u003esponsored by LaunchDarkly \u0026lt;https://opencollective.com/urllib3/contributions/815307\u0026gt;\u003c/code\u003e\u003cstrong\u003e. (\u003ccode\u003e[#2868](https://github.com/urllib3/urllib3/issues/2868) \u0026lt;https://github.com/urllib3/urllib3/issues/2868\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly\nrequests and streaming, and makes it possible to use in Node.js if you launch it as  \u003ccode\u003enode --experimental-wasm-stack-switching\u003c/code\u003e. (\u003ccode\u003e[#3400](https://github.com/urllib3/urllib3/issues/3400) \u0026lt;https://github.com/urllib3/urllib3/issues/3400\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ccode\u003e[#3285](https://github.com/urllib3/urllib3/issues/3285) \u0026lt;https://github.com/urllib3/urllib3/issues/3285\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ccode\u003e[#3480](https://github.com/urllib3/urllib3/issues/3480) \u0026lt;https://github.com/urllib3/urllib3/issues/3480\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ccode\u003e[#3489](https://github.com/urllib3/urllib3/issues/3489) \u0026lt;https://github.com/urllib3/urllib3/issues/3489\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ccode\u003e[#3492](https://github.com/urllib3/urllib3/issues/3492) \u0026lt;https://github.com/urllib3/urllib3/issues/3492\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.3 (2024-09-12)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ccode\u003e[#3473](https://github.com/urllib3/urllib3/issues/3473) \u0026lt;https://github.com/urllib3/urllib3/issues/3473\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1.\nAll other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ccode\u003e[#3053](https://github.com/urllib3/urllib3/issues/3053) \u0026lt;https://github.com/urllib3/urllib3/issues/3053\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (\u003ccode\u003e[#3252](https://github.com/urllib3/urllib3/issues/3252) \u0026lt;https://github.com/urllib3/urllib3/issues/3252\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ccode\u003e[#3413](https://github.com/urllib3/urllib3/issues/3413) \u0026lt;https://github.com/urllib3/urllib3/issues/3413\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ccode\u003e[#3432](https://github.com/urllib3/urllib3/issues/3432) \u0026lt;https://github.com/urllib3/urllib3/issues/3432\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ccode\u003e[#3448](https://github.com/urllib3/urllib3/issues/3448) \u0026lt;https://github.com/urllib3/urllib3/issues/3448\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ccode\u003e[#3425](https://github.com/urllib3/urllib3/issues/3425) \u0026lt;https://github.com/urllib3/urllib3/issues/3425\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/2f68c5363ef632d73dd4d9300289d7ce5ff275b4\"\u003e\u003ccode\u003e2f68c53\u003c/code\u003e\u003c/a\u003e Release 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f7bcf6986fa9c43fc7884b648f66688db593b491\"\u003e\u003ccode\u003ef7bcf69\u003c/code\u003e\u003c/a\u003e Add HTTPResponse.shutdown() to stop blocking reads (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3527\"\u003e#3527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e94224931feddf9e12bb25452bf0d0c21da8a7e0\"\u003e\u003ccode\u003ee942249\u003c/code\u003e\u003c/a\u003e Update .readthedocs.yml addressing a deprecation (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3534\"\u003e#3534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/905549d64a948abd4b6962edecb8dd5569166275\"\u003e\u003ccode\u003e905549d\u003c/code\u003e\u003c/a\u003e Upgrade Python pre-commit tools (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3529\"\u003e#3529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/716d8340b89f7d8ec549579d14e3c0a7e5f859a5\"\u003e\u003ccode\u003e716d834\u003c/code\u003e\u003c/a\u003e Fix PyPI publish with Core metadata 2.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3531\"\u003e#3531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7ab935c6ddd546c7d57b03c0269685c61c8e60c6\"\u003e\u003ccode\u003e7ab935c\u003c/code\u003e\u003c/a\u003e Address zizmor issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/181357ed2aecf9c523f2664c05f176cde9692994\"\u003e\u003ccode\u003e181357e\u003c/code\u003e\u003c/a\u003e Bump Quart to fix CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3524\"\u003e#3524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0e7e0df0586573d51c78076d4871050783bec7c8\"\u003e\u003ccode\u003e0e7e0df\u003c/code\u003e\u003c/a\u003e Start testing with Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/d67d09bfd04ecdae1280a563d06b32949befaf71\"\u003e\u003ccode\u003ed67d09b\u003c/code\u003e\u003c/a\u003e Bump mypy version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/20032ec38a09680bcfb6d97b4c43b276af43cc64\"\u003e\u003ccode\u003e20032ec\u003c/code\u003e\u003c/a\u003e Drop unneeded dependency pins and a warning filter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.2...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.5.1 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.47.0\u003c/h2\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Make PropagationContext.from_incoming_data always return a PropagationContext by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5186\"\u003e#5186\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(integrations):  anthropic set \u003ccode\u003eGEN_AI_OPERATION_NAME\u003c/code\u003e by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5185\"\u003e#5185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(spotlight): align behavior with SDK spec by \u003ca href=\"https://github.com/BYK\"\u003e\u003ccode\u003e@​BYK\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5169\"\u003e#5169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(integrations): do not exit early when config is not passed as it is not required and prohibits setting \u003ccode\u003egen_ai.request.messages\u003c/code\u003e by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5167\"\u003e#5167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(langchain): add gen_ai.response.model to chat spans by \u003ca href=\"https://github.com/shellmayr\"\u003e\u003ccode\u003e@​shellmayr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5159\"\u003e#5159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(integrations): add the system prompt to the \u003ccode\u003egen_ai.request.messages\u003c/code\u003e attribute by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5161\"\u003e#5161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ai): Handle Pydantic model classes in _normalize_data ...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-notebooks/pull/2069","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-notebooks/issues/2069","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2069/packages"}},{"old_version":"4.5.0","new_version":"7.0.0","update_type":"major","path":null,"pr_created_at":"2025-12-01T07:53:44.000Z","version_change":"4.5.0 → 7.0.0","issue":{"uuid":"3679731198","node_id":"PR_kwDOCBOG5c62R3G5","number":2066,"state":"closed","title":"chore: bump the python group across 2 directories with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-04T06:28:13.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T07:53:44.000Z","updated_at":"2025-12-04T06:28:15.000Z","time_to_close":254069,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: bump","group_name":"python","update_count":28,"packages":[{"name":"python-gitlab","old_version":"4.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"kubernetes","old_version":"30.1.0","new_version":"34.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"gunicorn","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"pyyaml","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.3.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"sentry-sdk","old_version":"2.5.1","new_version":"2.46.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"gevent","old_version":"24.2.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"},{"name":"apispec-webframeworks","old_version":"1.1.0","new_version":"1.2.0","repository_url":"https://github.com/marshmallow-code/apispec-webframeworks"},{"name":"webargs","old_version":"8.4.0","new_version":"8.7.1","repository_url":"https://github.com/marshmallow-code/webargs"},{"name":"pyjwt","old_version":"2.8.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"marshmallow","old_version":"3.21.3","new_version":"4.1.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"apispec","old_version":"6.6.1","new_version":"6.9.0","repository_url":"https://github.com/marshmallow-code/apispec"},{"name":"importlib-metadata","old_version":"7.1.0","new_version":"8.7.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"dataconf","old_version":"3.2.0","new_version":"3.6.0","repository_url":"https://github.com/zifeo/dataconf"},{"name":"python-ulid","old_version":"2.7.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"cryptography","old_version":"42.0.8","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"chartpress","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/jupyterhub/chartpress"},{"name":"pytest","old_version":"8.2.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pre-commit","old_version":"3.7.1","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest-cov","old_version":"5.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"semver","old_version":"3.0.2","new_version":"3.0.4","repository_url":"https://github.com/python-semver/python-semver"},{"name":"ruff","old_version":"0.4.9","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"responses","old_version":"0.25.3","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 27 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `4.5.0` | `7.0.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `34.1.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.1` | `6.0.3` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.3.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.46.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [apispec-webframeworks](https://github.com/marshmallow-code/apispec-webframeworks) | `1.1.0` | `1.2.0` |\n| [webargs](https://github.com/marshmallow-code/webargs) | `8.4.0` | `8.7.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.8.0` | `2.10.1` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.21.3` | `4.1.0` |\n| [apispec](https://github.com/marshmallow-code/apispec) | `6.6.1` | `6.9.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `7.1.0` | `8.7.0` |\n| [dataconf](https://github.com/zifeo/dataconf) | `3.2.0` | `3.6.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `2.7.0` | `3.1.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.8` | `46.0.3` |\n| [chartpress](https://github.com/jupyterhub/chartpress) | `2.2.0` | `2.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.2.2` | `9.0.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.7.1` | `4.5.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `5.0.0` | `7.0.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [semver](https://github.com/python-semver/python-semver) | `3.0.2` | `3.0.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.7` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.25.8` |\n\nBumps the python group with 6 updates in the /git_services directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `22.0.0` | `23.0.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.5.1` | `2.46.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.2.1` | `25.9.1` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.4.9` | `0.14.7` |\n| [renku](https://github.com/swissdatasciencecenter/renku-python) | `2.9.2` | `2.9.4` |\n\n\nUpdates `python-gitlab` from 4.5.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0\"\u003ev6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps\u003c/strong\u003e: Update actions/setup-python action to v6 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/89cdb788feec5fb995c7de6fec6afd83844c2618\"\u003e\u003ccode\u003e89cdb78\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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eapi\u003c/strong\u003e: Add content_ref and dry_run_ref parameters to ProjectCiLintManager\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd\"\u003e\u003ccode\u003ee8d2538\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement 'skip_confirmation' in users 'emails' creation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328\"\u003e\u003ccode\u003e2981730\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.4.0 (2025-09-28)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Implement missing arguments in users 'list'\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eusers\u003c/strong\u003e: Sort 'user list' arguments against documentation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02\"\u003e\u003ccode\u003e99923d4\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.0 (2025-08-28)\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/python-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f78a8731a7c51b773e90276f765309324403a080\"\u003e\u003ccode\u003ef78a873\u003c/code\u003e\u003c/a\u003e chore: release v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18\"\u003e\u003ccode\u003e2acac19\u003c/code\u003e\u003c/a\u003e docs(pull_mirror): fix incorrect start() method usage example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v4.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 3.0.3 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.2/\"\u003ehttps://pypi.org/project/Flask/3.1.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-2\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/38?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/38?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5774\"\u003e#5774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state of \u003ccode\u003esession\u003c/code\u003e is correct. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5786\"\u003e#5786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5776\"\u003e#5776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.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/Flask/3.1.1/\"\u003ehttps://pypi.org/project/Flask/3.1.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-1\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/flask/milestone/36?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/36?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. GHSA-4grg-w6v8-c28g\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5645\"\u003e#5645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands are shown. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5673\"\u003e#5673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return \u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier for Quart. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5659\"\u003e#5659\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.0/\"\u003ehttps://pypi.org/project/Flask/3.1.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\"\u003ehttps://flask.palletsprojects.com/en/stable/changes/#version-3-1-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/33?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/33?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5623\"\u003e#5623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases. Werkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5624\"\u003e#5624\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5633\"\u003e#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option responses. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5496\"\u003e#5496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and \u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when opening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5504\"\u003e#5504\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only through the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added \u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation about resource limits to the security page. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5625\"\u003e#5625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the \u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5472\"\u003e#5472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files. \u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless \u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5628\"\u003e#5628\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old secret keys that can still be used for unsigning. Extensions will need to add support. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5621\"\u003e#5621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix how setting \u003ccode\u003ehost_matching=True\u003c/code\u003e or \u003ccode\u003esubdomain_matching=False\u003c/code\u003e interacts with \u003ccode\u003eSERVER_NAME\u003c/code\u003e. Setting \u003ccode\u003eSERVER_NAME\u003c/code\u003e no longer restricts requests to only that domain. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5553\"\u003e#5553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.trusted_hosts\u003c/code\u003e is checked during routing, and can be set through the \u003ccode\u003eTRUSTED_HOSTS\u003c/code\u003e config. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5636\"\u003e#5636\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003estream_with_context\u003c/code\u003e does not fail inside async views. :issue:\u003ccode\u003e5774\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003efollow_redirects\u003c/code\u003e in the test client, the final state\nof \u003ccode\u003esession\u003c/code\u003e is correct. :issue:\u003ccode\u003e5786\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelax type hint for passing bytes IO to \u003ccode\u003esend_file\u003c/code\u003e. :issue:\u003ccode\u003e5776\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix signing key selection order when key rotation is enabled via\n\u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e. :ghsa:\u003ccode\u003e4grg-w6v8-c28g\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix type hint for \u003ccode\u003ecli_runner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e5645\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflask --help\u003c/code\u003e loads the app and plugins first to make sure all commands\nare shown. :issue:\u003ccode\u003e5673\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMark sans-io base class as being able to handle views that return\n\u003ccode\u003eAsyncIterable\u003c/code\u003e. This is not accurate for Flask, but makes typing easier\nfor Quart. :pr:\u003ccode\u003e5659\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e5623\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate minimum dependency versions to latest feature releases.\nWerkzeug \u0026gt;= 3.1, ItsDangerous \u0026gt;= 2.2, Blinker \u0026gt;= 1.9. :pr:\u003ccode\u003e5624,5633\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eProvide a configuration option to control automatic option\nresponses. :pr:\u003ccode\u003e5496\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFlask.open_resource\u003c/code\u003e/\u003ccode\u003eopen_instance_resource\u003c/code\u003e and\n\u003ccode\u003eBlueprint.open_resource\u003c/code\u003e take an \u003ccode\u003eencoding\u003c/code\u003e parameter to use when\nopening in text mode. It defaults to \u003ccode\u003eutf-8\u003c/code\u003e. :issue:\u003ccode\u003e5504\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.max_content_length\u003c/code\u003e can be customized per-request instead of only\nthrough the \u003ccode\u003eMAX_CONTENT_LENGTH\u003c/code\u003e config. Added\n\u003ccode\u003eMAX_FORM_MEMORY_SIZE\u003c/code\u003e and \u003ccode\u003eMAX_FORM_PARTS\u003c/code\u003e config. Added documentation\nabout resource limits to the security page. :issue:\u003ccode\u003e5625\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003ePartitioned\u003c/code\u003e cookie attribute (CHIPS), with the\n\u003ccode\u003eSESSION_COOKIE_PARTITIONED\u003c/code\u003e config. :issue:\u003ccode\u003e5472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-e path\u003c/code\u003e takes precedence over default \u003ccode\u003e.env\u003c/code\u003e and \u003ccode\u003e.flaskenv\u003c/code\u003e files.\n\u003ccode\u003eload_dotenv\u003c/code\u003e loads default files in addition to a path unless\n\u003ccode\u003eload_defaults=False\u003c/code\u003e is passed. :issue:\u003ccode\u003e5628\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSupport key rotation with the \u003ccode\u003eSECRET_KEY_FALLBACKS\u003c/code\u003e config, a list of old\nsecret keys that can still be used for unsigning. Extensions will need to\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/2c1b30d0503cfb064f1cb252e6614a06915a362a\"\u003e\u003ccode\u003e2c1b30d\u003c/code\u003e\u003c/a\u003e release version 3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3\"\u003e\u003ccode\u003e1292419\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5795\"\u003e#5795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211\"\u003e\u003ccode\u003e4dd52ca\u003c/code\u003e\u003c/a\u003e Update GitHub Actions workflow for artifact handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4\"\u003e\u003ccode\u003e55c6255\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3\"\u003e\u003ccode\u003ed8259eb\u003c/code\u003e\u003c/a\u003e use Jinja name consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979\"\u003e\u003ccode\u003e38b4c1e\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5799\"\u003e#5799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8\"\u003e\u003ccode\u003e9822a03\u003c/code\u003e\u003c/a\u003e refactor stream_with_context for async views\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053\"\u003e\u003ccode\u003e49b7e7b\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5798\"\u003e#5798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda\"\u003e\u003ccode\u003eb228ca3\u003c/code\u003e\u003c/a\u003e security docs for TRUSTED_HOSTS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd\"\u003e\u003ccode\u003eff64079\u003c/code\u003e\u003c/a\u003e update flask-talisman link\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.0.3...3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 30.1.0 to 34.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0.zip\ncd client-python-v34.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0b1.zip\ncd client-python-v34.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-34.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-34.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-34.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v34.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v34.1.0a1.zip\ncd client-python-v34.1.0a1\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/kubernetes-client/python/blob/master/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev34.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch1\u003ev34.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.34.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eomitempty\u003c/code\u003e and \u003ccode\u003eopt\u003c/code\u003e tag to the API \u003ccode\u003ev1beta2\u003c/code\u003e AdminAccess type in the \u003ccode\u003eDeviceRequestAllocationResult\u003c/code\u003e struct. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132338\"\u003ekubernetes/kubernetes#132338\u003c/a\u003e, \u003ca href=\"https://github.com/PatrickLaabs\"\u003e\u003ccode\u003e@​PatrickLaabs\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003eruntime.ApplyConfiguration\u003c/code\u003e interface implemented by all generated apply configuration types. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132194\"\u003ekubernetes/kubernetes#132194\u003c/a\u003e, \u003ca href=\"https://github.com/alvaroaleman\"\u003e\u003ccode\u003e@​alvaroaleman\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Instrumentation]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130387\"\u003ekubernetes/kubernetes#130387\u003c/a\u003e, \u003ca href=\"https://github.com/shiya0705\"\u003e\u003ccode\u003e@​shiya0705\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a mechanism for configurable container restarts: \u003cem\u003econtainer-level restart rules\u003c/em\u003e. This was an alpha feature behind the \u003ccode\u003eContainerRestartRules\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132642\"\u003ekubernetes/kubernetes#132642\u003c/a\u003e, \u003ca href=\"https://github.com/yuanwang04\"\u003e\u003ccode\u003e@​yuanwang04\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003eFileKeyRef\u003c/code\u003e field to containers, allowing them to load variables from files by setting this field.\u003c/p\u003e\n\u003cp\u003eIntroduced the \u003ccode\u003eEnvFiles\u003c/code\u003e feature gate to govern activation of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132626\"\u003ekubernetes/kubernetes#132626\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded driver-owned fields in \u003ccode\u003eResourceSlice\u003c/code\u003e to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded user-owned fields in \u003ccode\u003eResourceClaim\u003c/code\u003e to specify resource requirements against each device capacity.\u003c/li\u003e\n\u003cli\u003eAdded scheduler-owned field in \u003ccode\u003eResourceClaim.Status\u003c/code\u003e to specify how much device capacity is reserved for a specific request.\u003c/li\u003e\n\u003cli\u003eAdded an additional identifier to \u003ccode\u003eResourceClaim.Status\u003c/code\u003e for the device supports multiple allocations.\u003c/li\u003e\n\u003cli\u003eAdded a new constraint type to enforce uniqueness of specified attributes across all allocated devices. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132522\"\u003ekubernetes/kubernetes#132522\u003c/a\u003e, \u003ca href=\"https://github.com/sunya-ch\"\u003e\u003ccode\u003e@​sunya-ch\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded new optional APIs in \u003ccode\u003eResouceSlice.Basic\u003c/code\u003e and \u003ccode\u003eResourceClaim.Status.AllocatedDeviceStatus\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130160\"\u003ekubernetes/kubernetes#130160\u003c/a\u003e, \u003ca href=\"https://github.com/KobayashiD27\"\u003e\u003ccode\u003e@​KobayashiD27\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for specifying \u003ccode\u003econtrolplane\u003c/code\u003e or \u003ccode\u003ecluster\u003c/code\u003e egress selectors in JWT authenticators via the \u003ccode\u003eissuer.egressSelectorType\u003c/code\u003e field in the \u003ccode\u003eAuthenticationConfiguration.jwt\u003c/code\u003e array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the \u003ccode\u003eStructuredAuthenticationConfigurationEgressSelector\u003c/code\u003e beta feature gate (enabled by default). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132768\"\u003ekubernetes/kubernetes#132768\u003c/a\u003e, \u003ca href=\"https://github.com/enj\"\u003e\u003ccode\u003e@​enj\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the \u003ccode\u003epod.status.containerStatuses.allocatedResourcesStatus\u003c/code\u003e field. This required the DRA plugin to implement the new v1alpha1 \u003ccode\u003eNodeHealth\u003c/code\u003e gRPC service. This feature was controlled by the \u003ccode\u003eResourceHealthStatus\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130606\"\u003ekubernetes/kubernetes#130606\u003c/a\u003e, \u003ca href=\"https://github.com/Jpsassine\"\u003e\u003ccode\u003e@​Jpsassine\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132771\"\u003ekubernetes/kubernetes#132771\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded validation to reject Pods using the \u003ccode\u003ePodLevelResources\u003c/code\u003e feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a \u003ccode\u003ePod.spec.os.name\u003c/code\u003e targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133046\"\u003ekubernetes/kubernetes#133046\u003c/a\u003e, \u003ca href=\"https://github.com/toVersus\"\u003e\u003ccode\u003e@​toVersus\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded warnings when creating headless service with set \u003ccode\u003eloadBalancerIP\u003c/code\u003e,\u003ccode\u003eexternalIPs\u003c/code\u003e and/or \u003ccode\u003eSessionAffinity\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132214\"\u003ekubernetes/kubernetes#132214\u003c/a\u003e, \u003ca href=\"https://github.com/Peac36\"\u003e\u003ccode\u003e@​Peac36\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed \u003ccode\u003epvc.spec.VolumeAttributesClassName\u003c/code\u003e to change from non-nil to nil. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132106\"\u003ekubernetes/kubernetes#132106\u003c/a\u003e, \u003ca href=\"https://github.com/AndrewSirenko\"\u003e\u003ccode\u003e@​AndrewSirenko\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed setting the \u003ccode\u003ehostnameOverride\u003c/code\u003e field in \u003ccode\u003ePodSpec\u003c/code\u003e to specify any RFC 1123 DNS subdomain as the pod's hostname. The \u003ccode\u003eHostnameOverride\u003c/code\u003e feature gate was introduced to control enablement of this functionality. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132558\"\u003ekubernetes/kubernetes#132558\u003c/a\u003e, \u003ca href=\"https://github.com/HirazawaUi\"\u003e\u003ccode\u003e@​HirazawaUi\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Network, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic for \u003ccode\u003eEviction Manager\u003c/code\u003e helper functions. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132277\"\u003ekubernetes/kubernetes#132277\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131089\"\u003ekubernetes/kubernetes#131089\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCorrected the documentation to clarify that \u003ccode\u003epodSelector\u003c/code\u003e is optional and described its default behavior. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131354\"\u003ekubernetes/kubernetes#131354\u003c/a\u003e, \u003ca href=\"https://github.com/tomoish\"\u003e\u003ccode\u003e@​tomoish\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\nbefore updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u0026lt; 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u0026gt;= 1.32. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132000\"\u003ekubernetes/kubernetes#132000\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting with Kubernetes 1.34, the alpha-level \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e label has been updated to \u003ccode\u003eresource.kubernetes.io/admin-access\u003c/code\u003e. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove \u003ccode\u003eresource.k8s.io/admin-access\u003c/code\u003e when no downgrade is going to happen anymore. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131996\"\u003ekubernetes/kubernetes#131996\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's \u003ccode\u003eFilterTimeout\u003c/code\u003e. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u0026lt;= 1.33. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132033\"\u003ekubernetes/kubernetes#132033\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130593\"\u003ekubernetes/kubernetes#130593\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes  \u0026gt;= 1.32 use the v1beta1 API and continue to be supported. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132574\"\u003ekubernetes/kubernetes#132574\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecated \u003ccode\u003eStreamingConnectionIdleTimeout\u003c/code\u003e field of the kubelet config. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/131992\"\u003ekubernetes/kubernetes#131992\u003c/a\u003e, \u003ca href=\"https://github.com/lalitc375\"\u003e\u003ccode\u003e@​lalitc375\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the \u003cem\u003estructured parameters\u003c/em\u003e flavor of DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132706\"\u003ekubernetes/kubernetes#132706\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnabled kube-apiserver support for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e and \u003ccode\u003ePodCertificate\u003c/code\u003e projected volumes (behind the \u003ccode\u003ePodCertificateRequest\u003c/code\u003e feature gate). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128010\"\u003ekubernetes/kubernetes#128010\u003c/a\u003e, \u003ca href=\"https://github.com/ahmedtd\"\u003e\u003ccode\u003e@​ahmedtd\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended resources backed by DRA feature allowed cluster operator to specify \u003ccode\u003eextendedResourceName\u003c/code\u003e in \u003ccode\u003eDeviceClass\u003c/code\u003e, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eNodeResourcesFit\u003c/code\u003e plugin scoring didn't work for extended resources backed by DRA. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130653\"\u003ekubernetes/kubernetes#130653\u003c/a\u003e, \u003ca href=\"https://github.com/yliaog\"\u003e\u003ccode\u003e@​yliaog\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExtended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132040\"\u003ekubernetes/kubernetes#132040\u003c/a\u003e, \u003ca href=\"https://github.com/avrittrohwer\"\u003e\u003ccode\u003e@​avrittrohwer\u003c/code\u003e\u003c/a\u003e) [SIG Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132895\"\u003ekubernetes/kubernetes#132895\u003c/a\u003e, \u003ca href=\"https://github.com/yue9944882\"\u003e\u003ccode\u003e@​yue9944882\u003c/code\u003e\u003c/a\u003e) [SIG Node and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed prerelease lifecycle for \u003ccode\u003ePodCertificateRequest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/133350\"\u003ekubernetes/kubernetes#133350\u003c/a\u003e, \u003ca href=\"https://github.com/carlory\"\u003e\u003ccode\u003e@​carlory\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIntroduced OpenAPI format support for \u003ccode\u003ek8s-short-name\u003c/code\u003e and \u003ccode\u003ek8s-long-name\u003c/code\u003e in CustomResourceDefinition schemas. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/132504\"\u003ekubernetes/kubernetes#132504\u003c/a\u003e, \u003ca href=\"https://github.com/jpbetz\"\u003e\u003ccode\u003e@​jpbetz\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]\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/kubernetes-client/python/commit/5b23a44aa06010ac6ffe423d7b0e090caf7882ff\"\u003e\u003ccode\u003e5b23a44\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2455\"\u003e#2455\u003c/a\u003e from yliaog/automated-release-of-34.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/8866972d0e42684f289f14a30e9db645873c5a07\"\u003e\u003ccode\u003e8866972\u003c/code\u003e\u003c/a\u003e Updated the compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9bb20149e75c65640b868d6d0eb389d2a8930059\"\u003e\u003ccode\u003e9bb2014\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/efa2b2610b4b4223fd06137b0c7f6c326338d669\"\u003e\u003ccode\u003eefa2b26\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/b374f2ea67b2caa183e52f1e1ce57e27aaadac89\"\u003e\u003ccode\u003eb374f2e\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d14e9fbdd7bce1ed3c5bac4cb54caac3605e353\"\u003e\u003ccode\u003e9d14e9f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2452\"\u003e#2452\u003c/a\u003e from yliaog/automated-release-of-34.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/749ec15345a6a1d1daa2fbab7779dd554669335c\"\u003e\u003ccode\u003e749ec15\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/14901c6b346a14a4b925435c124bd98dc8abe247\"\u003e\u003ccode\u003e14901c6\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fe16bed8478ea77dd94ee544d94fc93093745447\"\u003e\u003ccode\u003efe16bed\u003c/code\u003e\u003c/a\u003e update version constants for 34.1.0b1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/c66f45a265b851aeb13d6986eb7c61df9562ec0d\"\u003e\u003ccode\u003ec66f45a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2448\"\u003e#2448\u003c/a\u003e from yliaog/automated-release-of-34.1.0a1-upstream-r...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v30.1.0...v34.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\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/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.5\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.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of 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/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.5\"\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.1 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\u003ch2\u003e6.0.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Cython 3.x and Python 3.13.\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.1...6.0.2\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.1...6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.0.2rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for extension build with Cython 3.x\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdded PyPI wheels for musllinux on aarch64\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/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\u003cp\u003e6.0.2 (2024-08-06)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/808\"\u003eyaml/pyyaml#808\u003c/a\u003e -- Support for Cython 3.x and Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/41309b0bcb4559edb1d691d47199035ef539d785\"\u003e\u003ccode\u003e41309b0\u003c/code\u003e\u003c/a\u003e Release 6.0.2 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/dd9f0e1236775dcce682c91823e009556ce2a271\"\u003e\u003ccode\u003edd9f0e1\u003c/code\u003e\u003c/a\u003e 6.0.2rc1 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/809\"\u003e#809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/f5527a26d518b3e9c66f9211e0af00c83f09a97e\"\u003e\u003ccode\u003ef5527a2\u003c/code\u003e\u003c/a\u003e disable CI trigger on PR edits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yaml/pyyaml/commit/b4d80a742142004490d2da7691d534923820b81c\"\u003e\u003ccode\u003eb4d80a7\u003c/code\u003e\u003c/a\u003e Python 3.12 + musllinux_1_1_x86_64 wheel support\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.1...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.2.2 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ca href=\"https://opencollective.com/urllib3/contributions/815307\"\u003esponsored by LaunchDarkly\u003c/a\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2868\"\u003eurllib3/urllib3#2868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly requests and streaming, and makes it possible to use in Node.js if you launch it as node \u003ccode\u003e--experimental-wasm-stack-switching\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3400\"\u003eurllib3/urllib3#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3285\"\u003eurllib3/urllib3#3285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3480\"\u003eurllib3/urllib3#3480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3489\"\u003eurllib3/urllib3#3489\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3492\"\u003eurllib3/urllib3#3492\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.3...2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3473\"\u003e#3473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1. All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (`\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3252\"\u003e#3252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3413\"\u003e#3413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3448\"\u003e#3448\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3425\"\u003e#3425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage. Now only accepting supported h2 major version 4.x.x. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3290\"\u003e#3290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a probing mechanism for determining whether a given target origin supports HTTP/2 via ALPN. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3301\"\u003e#3301\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0 (2024-12-22)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTPResponse.shutdown()\u003c/code\u003e to stop any ongoing or future reads for a specific response. It calls \u003ccode\u003eshutdown(SHUT_RD)\u003c/code\u003e on the underlying socket. This feature was \u003ccode\u003esponsored by LaunchDarkly \u0026lt;https://opencollective.com/urllib3/contributions/815307\u0026gt;\u003c/code\u003e\u003cstrong\u003e. (\u003ccode\u003e[#2868](https://github.com/urllib3/urllib3/issues/2868) \u0026lt;https://github.com/urllib3/urllib3/issues/2868\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for JavaScript Promise Integration on Emscripten. This enables more efficient WebAssembly\nrequests and streaming, and makes it possible to use in Node.js if you launch it as  \u003ccode\u003enode --experimental-wasm-stack-switching\u003c/code\u003e. (\u003ccode\u003e[#3400](https://github.com/urllib3/urllib3/issues/3400) \u0026lt;https://github.com/urllib3/urllib3/issues/3400\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003eproxy_is_tunneling\u003c/code\u003e property to \u003ccode\u003eHTTPConnection\u003c/code\u003e and \u003ccode\u003eHTTPSConnection\u003c/code\u003e. (\u003ccode\u003e[#3285](https://github.com/urllib3/urllib3/issues/3285) \u0026lt;https://github.com/urllib3/urllib3/issues/3285\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded pickling support to \u003ccode\u003eNewConnectionError\u003c/code\u003e and \u003ccode\u003eNameResolutionError\u003c/code\u003e. (\u003ccode\u003e[#3480](https://github.com/urllib3/urllib3/issues/3480) \u0026lt;https://github.com/urllib3/urllib3/issues/3480\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue in debug logs where the HTTP version was rendering as \u0026quot;HTTP/11\u0026quot; instead of \u0026quot;HTTP/1.1\u0026quot;. (\u003ccode\u003e[#3489](https://github.com/urllib3/urllib3/issues/3489) \u0026lt;https://github.com/urllib3/urllib3/issues/3489\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8. (\u003ccode\u003e[#3492](https://github.com/urllib3/urllib3/issues/3492) \u0026lt;https://github.com/urllib3/urllib3/issues/3492\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.3 (2024-09-12)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13. (\u003ccode\u003e[#3473](https://github.com/urllib3/urllib3/issues/3473) \u0026lt;https://github.com/urllib3/urllib3/issues/3473\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1.\nAll other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (\u003ccode\u003e[#3053](https://github.com/urllib3/urllib3/issues/3053) \u0026lt;https://github.com/urllib3/urllib3/issues/3053\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed ResourceWarning on CONNECT with Python \u0026lt; 3.11.4 by backporting \u003ca href=\"https://redirect.github.com/python/cpython/issues/103472\"\u003epython/cpython#103472\u003c/a\u003e. (\u003ccode\u003e[#3252](https://github.com/urllib3/urllib3/issues/3252) \u0026lt;https://github.com/urllib3/urllib3/issues/3252\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdjust tolerance for floating-point comparison on Windows to avoid flakiness in CI (\u003ccode\u003e[#3413](https://github.com/urllib3/urllib3/issues/3413) \u0026lt;https://github.com/urllib3/urllib3/issues/3413\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a crash where certain standard library hash functions were absent in restricted environments. (\u003ccode\u003e[#3432](https://github.com/urllib3/urllib3/issues/3432) \u0026lt;https://github.com/urllib3/urllib3/issues/3432\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed mypy error when adding to \u003ccode\u003eHTTPConnection.default_socket_options\u003c/code\u003e. (\u003ccode\u003e[#3448](https://github.com/urllib3/urllib3/issues/3448) \u0026lt;https://github.com/urllib3/urllib3/issues/3448\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eHTTP/2 (experimental)\u003c/h2\u003e\n\u003cp\u003eHTTP/2 support is still in early development.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eExcluded Transfer-Encoding: chunked from HTTP/2 request body (\u003ccode\u003e[#3425](https://github.com/urllib3/urllib3/issues/3425) \u0026lt;https://github.com/urllib3/urllib3/issues/3425\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded version checking for \u003ccode\u003eh2\u003c/code\u003e (\u003ca href=\"https://pypi.org/project/h2/\"\u003ehttps://pypi.org/project/h2/\u003c/a\u003e) usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/2f68c5363ef632d73dd4d9300289d7ce5ff275b4\"\u003e\u003ccode\u003e2f68c53\u003c/code\u003e\u003c/a\u003e Release 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f7bcf6986fa9c43fc7884b648f66688db593b491\"\u003e\u003ccode\u003ef7bcf69\u003c/code\u003e\u003c/a\u003e Add HTTPResponse.shutdown() to stop blocking reads (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3527\"\u003e#3527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e94224931feddf9e12bb25452bf0d0c21da8a7e0\"\u003e\u003ccode\u003ee942249\u003c/code\u003e\u003c/a\u003e Update .readthedocs.yml addressing a deprecation (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3534\"\u003e#3534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/905549d64a948abd4b6962edecb8dd5569166275\"\u003e\u003ccode\u003e905549d\u003c/code\u003e\u003c/a\u003e Upgrade Python pre-commit tools (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3529\"\u003e#3529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/716d8340b89f7d8ec549579d14e3c0a7e5f859a5\"\u003e\u003ccode\u003e716d834\u003c/code\u003e\u003c/a\u003e Fix PyPI publish with Core metadata 2.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3531\"\u003e#3531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7ab935c6ddd546c7d57b03c0269685c61c8e60c6\"\u003e\u003ccode\u003e7ab935c\u003c/code\u003e\u003c/a\u003e Address zizmor issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/181357ed2aecf9c523f2664c05f176cde9692994\"\u003e\u003ccode\u003e181357e\u003c/code\u003e\u003c/a\u003e Bump Quart to fix CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3524\"\u003e#3524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0e7e0df0586573d51c78076d4871050783bec7c8\"\u003e\u003ccode\u003e0e7e0df\u003c/code\u003e\u003c/a\u003e Start testing with Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/d67d09bfd04ecdae1280a563d06b32949befaf71\"\u003e\u003ccode\u003ed67d09b\u003c/code\u003e\u003c/a\u003e Bump mypy version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/20032ec38a09680bcfb6d97b4c43b276af43cc64\"\u003e\u003ccode\u003e20032ec\u003c/code\u003e\u003c/a\u003e Drop unneeded dependency pins and a warning filter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.2...2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.5.1 to 2.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.46.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e in Pydantic AI integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI agents integration mistakenly enabling itself (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd instrumentation to embedding functions for various backends (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5120\"\u003e#5120\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove embeddings support for OpenAI (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5121\"\u003e#5121\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance input handling for embeddings in LiteLLM integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5127\"\u003e#5127\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpect exceptions when re-raised (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5125\"...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-notebooks/pull/2066","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-notebooks/issues/2066","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2066/packages"}},{"old_version":"6.5.0","new_version":"7.0.0","update_type":"major","path":"/scanners/git-repo-scanner/scanner in the pip-version-updates group across 1 directory","pr_created_at":"2025-11-10T10:02:42.000Z","version_change":"6.5.0 → 7.0.0","issue":{"uuid":"3607186104","node_id":"PR_kwDOBM-Q_c6yfP8q","number":3354,"state":"open","title":"Bump python-gitlab from 6.5.0 to 7.0.0 in /scanners/git-repo-scanner/scanner in the pip-version-updates group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T10:02:42.000Z","updated_at":"2025-11-10T10:03:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/scanners/git-repo-scanner/scanner in the pip-version-updates group across 1 directory","ecosystem":"pip"},"body":"Bumps the pip-version-updates group with 1 update in the /scanners/git-repo-scanner/scanner directory: [python-gitlab](https://github.com/python-gitlab/python-gitlab).\n\nUpdates `python-gitlab` from 6.5.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/secureCodeBox/secureCodeBox/pull/3354","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/secureCodeBox%2FsecureCodeBox/issues/3354","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3354/packages"}},{"old_version":"6.5.0","new_version":"7.0.0","update_type":"major","path":"/.config/python/dev","pr_created_at":"2025-11-03T15:15:06.000Z","version_change":"6.5.0 → 7.0.0","issue":{"uuid":"3582509824","node_id":"PR_kwDOEitXEs6xNfJy","number":6487,"state":"open","title":"Bump python-gitlab from 6.5.0 to 7.0.0 in /.config/python/dev","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":"2025-11-03T15:15:06.000Z","updated_at":"2025-11-03T15:25:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"python-gitlab","old_version":"6.5.0","new_version":"7.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"}],"path":"/.config/python/dev","ecosystem":"pip"},"body":"Bumps [python-gitlab](https://github.com/python-gitlab/python-gitlab) from 6.5.0 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.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/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-gitlab/python-gitlab/commit/378b72d841b5c7ff34eb7b9d8b4c3083af367a4c\"\u003e\u003ccode\u003e378b72d\u003c/code\u003e\u003c/a\u003e chore: release v7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e feat!: drop Python 3.9 support and add Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/adbc833b982c3328a47d618bd0e61e4bb068e0ba\"\u003e\u003ccode\u003eadbc833\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0f5655c7c018223b325d3ebc42029d92bac449c1\"\u003e\u003ccode\u003e0f5655c\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade coverage to 7.11.0 for Python \u0026gt; 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/e213849bef447b94f2185f5c5e2bb3cbdef0a0f6\"\u003e\u003ccode\u003ee213849\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/pylint to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d623085b39c05be14f3e136730d8d617fb961c46\"\u003e\u003ccode\u003ed623085\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook pycqa/isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/2e0831c7b88ec98b3ef1cab944f1aba77b31fcc7\"\u003e\u003ccode\u003e2e0831c\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency isort to v7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/0a6c4085e75e02c715f9132d81a00e2be7df9267\"\u003e\u003ccode\u003e0a6c408\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pylint to v4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=python-gitlab\u0026package-manager=pip\u0026previous-version=6.5.0\u0026new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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 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/oxsecurity/megalinter/pull/6487","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxsecurity%2Fmegalinter/issues/6487","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6487/packages"}}]}