{"id":5653,"name":"uritemplate","ecosystem":"pip","repository_url":"https://github.com/python-hyper/uritemplate","issues_count":83,"created_at":"2025-06-06T19:07:54.514Z","updated_at":"2025-06-06T19:07:54.514Z","purl":"pkg:pypi/uritemplate","metadata":{"id":2960618,"name":"uritemplate","ecosystem":"pypi","description":"Implementation of RFC 6570 URI Templates","homepage":"https://uritemplate.readthedocs.org","licenses":"BSD 3-Clause OR Apache-2.0","normalized_licenses":["BSD-3-Clause","Apache-2.0"],"repository_url":"https://github.com/python-hyper/uritemplate","keywords_array":["rfc","6570","uri","template"],"namespace":null,"versions_count":13,"first_release_published_at":"2012-05-11T03:59:52.000Z","latest_release_published_at":"2025-06-02T15:12:03.000Z","latest_release_number":"4.2.0","last_synced_at":"2025-06-04T21:36:26.069Z","created_at":"2022-04-10T12:58:25.222Z","updated_at":"2025-06-04T21:36:26.069Z","registry_url":"https://pypi.org/project/uritemplate/","install_command":"pip install uritemplate --index-url https://pypi.org/simple","documentation_url":"https://uritemplate.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: Implementation :: CPython"],"normalized_name":"uritemplate"},"repo_metadata":{"id":8462696,"uuid":"10060003","full_name":"python-hyper/uritemplate","owner":"python-hyper","description":"URI template parsing per RFC6570","archived":false,"fork":false,"pushed_at":"2025-05-29T02:33:17.000Z","size":247,"stargazers_count":238,"open_issues_count":8,"forks_count":32,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-05-29T03:22:11.014Z","etag":null,"topics":["python","rfc6570","uri","uritemplate"],"latest_commit_sha":null,"homepage":"https://uritemplate.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/python-hyper.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-05-14T16:52:08.000Z","updated_at":"2025-05-29T02:11:25.000Z","dependencies_parsed_at":"2023-02-19T15:15:19.425Z","dependency_job_id":"e3e46959-4884-458a-ad03-7dd55bf2f742","html_url":"https://github.com/python-hyper/uritemplate","commit_stats":{"total_commits":178,"total_committers":20,"mean_commits":8.9,"dds":0.4943820224719101,"last_synced_commit":"9559fe843088fbce3fe0e313fbd1204f2190ccef"},"previous_names":["sigmavirus24/uritemplate"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-hyper","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257612020,"owners_count":22572635,"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-hyper","name":"Hyper","uuid":"13035907","kind":"organization","description":"HTTP for Python","email":null,"website":"http://hyper.readthedocs.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/13035907?v=4","repositories_count":17,"last_synced_at":"2024-03-25T20:04:47.277Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/python-hyper","funding_links":[],"total_stars":3694,"followers":54,"following":0,"created_at":"2022-11-02T16:24:51.582Z","updated_at":"2024-03-25T20:04:47.290Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-hyper","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python-hyper/repositories"},"tags":[{"name":"4.2.0","sha":"e89ada10dd4e9deb8c576f3f0de8a813fbea9c02","kind":"tag","published_at":"2025-06-02T02:35:17.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/4.2.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.2.0/manifests"},{"name":"4.1.1","sha":"1f7fa333075527f777717a103af25e7e18a8522b","kind":"tag","published_at":"2021-10-13T11:14:38.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/4.1.1","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.1.1/manifests"},{"name":"4.1.0","sha":"df95fab991acbbc6df3ada91ef74fd578041aac0","kind":"tag","published_at":"2021-10-13T00:36:04.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/4.1.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.1.0/manifests"},{"name":"4.0.0","sha":"ea3a2812876c082ec7e1ed863082238b6ba80929","kind":"tag","published_at":"2021-10-10T14:20:24.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/4.0.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/4.0.0/manifests"},{"name":"3.0.1","sha":"d894d25e6b1987db346b79bc60e54210015c2f5d","kind":"tag","published_at":"2019-12-19T23:39:30.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/3.0.1","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/3.0.1/manifests"},{"name":"3.0.0","sha":"623fce3c9065dead7e2892f716680ed3064f1a56","kind":"tag","published_at":"2016-08-31T22:40:47.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/3.0.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/3.0.0/manifests"},{"name":"2.0.0","sha":"6c1d9effa0efee0852dbc887622e05a3cc4f7f4b","kind":"tag","published_at":"2016-08-20T11:15:06.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/2.0.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/2.0.0/manifests"},{"name":"1.0.1","sha":"07e88134b36bee0f6c0b195ab4b978d761f77ebb","kind":"tag","published_at":"2016-08-18T16:03:49.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/1.0.1","html_url":"https://github.com/python-hyper/uritemplate/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-hyper%2Furitemplate/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/1.0.1/manifests"},{"name":"1.0.0","sha":"a8e3c38d80f31c280da42f4c7d6b565640d24bd1","kind":"tag","published_at":"2016-08-17T21:27:04.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/1.0.0","html_url":"https://github.com/python-hyper/uritemplate/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-hyper%2Furitemplate/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/1.0.0/manifests"},{"name":"0.3.0","sha":"a4b62a94f3bbe9ce7b26c34de212d3c1f817e298","kind":"tag","published_at":"2013-10-23T01:53:38.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/0.3.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/0.3.0/manifests"},{"name":"0.2.0","sha":"5df53bfbb61cd24a66392e388ad0c93c5fa05d44","kind":"tag","published_at":"2013-10-13T13:44:51.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/0.2.0","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/0.2.0/manifests"},{"name":"0.1.1","sha":"afc4b2c25c6fa2c681f556f094be0a20e62d0911","kind":"tag","published_at":"2013-05-20T03:43:31.000Z","download_url":"https://codeload.github.com/python-hyper/uritemplate/tar.gz/0.1.1","html_url":"https://github.com/python-hyper/uritemplate/releases/tag/0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-hyper%2Furitemplate/tags/0.1.1/manifests"}]},"repo_metadata_updated_at":"2025-06-02T15:33:43.354Z","dependent_packages_count":166,"downloads":73492333,"downloads_period":"last-month","dependent_repos_count":45808,"rankings":{"downloads":0.03961797995990514,"dependent_repos_count":0.0295300683960404,"dependent_packages_count":0.13279359949523759,"stargazers_count":5.857224870553753,"forks_count":8.210459513542563,"docker_downloads_count":0.021276322571060168,"average":2.3818170590864267},"purl":"pkg:pypi/uritemplate","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/uritemplate","docker_dependents_count":3728,"docker_downloads_count":3036213170,"usage_url":"https://repos.ecosyste.ms/usage/pypi/uritemplate","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/uritemplate/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uritemplate/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uritemplate/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uritemplate/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/uritemplate/related_packages","maintainers":[{"uuid":"brettcannon","login":"brettcannon","name":null,"email":null,"url":null,"packages_count":21,"html_url":"https://pypi.org/user/brettcannon/","role":null,"created_at":"2023-01-08T20:45:58.449Z","updated_at":"2023-01-08T20:45:58.449Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/brettcannon/packages"},{"uuid":"graffatcolmingov","login":"graffatcolmingov","name":null,"email":null,"url":null,"packages_count":55,"html_url":"https://pypi.org/user/graffatcolmingov/","role":null,"created_at":"2023-01-08T20:45:58.411Z","updated_at":"2023-01-08T20:45:58.411Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/graffatcolmingov/packages"},{"uuid":"mnot","login":"mnot","name":null,"email":null,"url":null,"packages_count":16,"html_url":"https://pypi.org/user/mnot/","role":null,"created_at":"2023-01-08T20:45:58.435Z","updated_at":"2023-01-08T20:45:58.435Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/mnot/packages"},{"uuid":"jcgregorio","login":"jcgregorio","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/jcgregorio/","role":null,"created_at":"2023-01-08T20:45:58.424Z","updated_at":"2023-01-08T20:45:58.424Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jcgregorio/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690424,"maintainers_count":292814,"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":57,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4258079484","node_id":"PR_kwDOCvMLjs7SIH5-","number":84,"state":"closed","title":"[python]: Update uritemplate requirement from ~=4.1 to ~=4.2","user":"dependabot[bot]","labels":["dependencies","d:python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-13T22:39:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:48:02.000Z","updated_at":"2026-04-13T22:39:40.000Z","time_to_close":3089,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[python]: Update","packages":[{"name":"uritemplate","old_version":"~=4.1","new_version":"~=4.2","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [uritemplate](https://github.com/python-hyper/uritemplate) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 - 2021-10-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix setup.cfg metadata to reflect lack of support for Python 2 as desired in\n4.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 - 2021-10-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations to uritemplate and distribute them for others to use\u003c/li\u003e\n\u003cli\u003eUpdate to a modern documentation theme as well\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0 - 2021-10-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 2.7, 3.4, and 3.5\u003c/li\u003e\n\u003cli\u003eBetter support number-like types as values for variables in a template\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.1 - 2019-12-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Python 3.6, 3.7, and 3.8\u003c/li\u003e\n\u003cli\u003eDrop support for Python 2.6, 3.2, and 3.3\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003eNone\u003c/code\u003e in list argument expansion\u003c/li\u003e\n\u003cli\u003eHandle a list with an empty string appropriately\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0 - 2016-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMatch major version number of uritemplate.py\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0 - 2016-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMerge uritemplate.py into uritemplate\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eChangelog - uritemplate.py\u003c/h1\u003e\n\u003cp\u003e3.0.2 - 2015-08-30\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.0...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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/jwodder/pyrepo/pull/84","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fpyrepo/issues/84","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/84/packages"},{"uuid":"4006944640","node_id":"PR_kwDOQ-MND87HHSOe","number":8,"state":"open","title":"chore(deps): Bump the python-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T11:12:43.000Z","updated_at":"2026-03-01T11:12:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-dependencies","update_count":34,"packages":[{"name":"asgiref","old_version":"3.8.1","new_version":"3.11.1","repository_url":"https://github.com/django/asgiref"},{"name":"sqlparse","old_version":"0.5.0","new_version":"0.5.5","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"certifi","old_version":"2024.2.2","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"idna","old_version":"3.7","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"requests","old_version":"2.32.2","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"urllib3","old_version":"2.2.1","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"amqp","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/celery/py-amqp"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"click-plugins","old_version":"1.1.1","new_version":"1.1.1.2","repository_url":"https://github.com/click-contrib/click-plugins"},{"name":"prompt-toolkit","old_version":"3.0.43","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"tzdata","old_version":"2024.1","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.6.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"cron-descriptor","old_version":"1.4.3","new_version":"2.0.6","repository_url":"https://github.com/Salamek/cron-descriptor"},{"name":"python-crontab","old_version":"3.1.0","new_version":"3.3.0"},{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"rjsmin","old_version":"1.2.2","new_version":"1.2.5","repository_url":"https://github.com/ndparker/rjsmin"},{"name":"sendgrid","old_version":"6.11.0","new_version":"6.12.5","repository_url":"https://github.com/sendgrid/sendgrid-python"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"gevent","old_version":"24.11.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"},{"name":"greenlet","old_version":"3.1.1","new_version":"3.3.2","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"zope-event","old_version":"5.0","new_version":"6.1","repository_url":"https://github.com/zopefoundation/zope.event"},{"name":"zope-interface","old_version":"7.1.1","new_version":"8.2","repository_url":"https://github.com/zopefoundation/zope.interface"},{"name":"sqlalchemy","old_version":"2.0.31","new_version":"2.0.47","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pytailwindcss","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/timonweb/pytailwindcss"},{"name":"watchdog","old_version":"4.0.1","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"legacy-cgi","old_version":"2.6.2","new_version":"2.6.4","repository_url":"https://github.com/jackrosenthal/legacy-cgi"},{"name":"pillow","old_version":"11.1.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.11.1` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.0` | `0.5.5` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.2.2` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [idna](https://github.com/kjd/idna) | `3.7` | `3.11` |\n| [requests](https://github.com/psf/requests) | `2.32.2` | `2.32.5` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.1` | `2.6.3` |\n| [amqp](https://github.com/celery/py-amqp) | `5.2.0` | `5.3.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [click-plugins](https://github.com/click-contrib/click-plugins) | `1.1.1` | `1.1.1.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.43` | `3.0.52` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [tzdata](https://github.com/python/tzdata) | `2024.1` | `2025.3` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.6.0` |\n| [cron-descriptor](https://github.com/Salamek/cron-descriptor) | `1.4.3` | `2.0.6` |\n| [python-crontab](https://gitlab.com/doctormo/python-crontab) | `3.1.0` | `3.3.0` |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [rjsmin](https://github.com/ndparker/rjsmin) | `1.2.2` | `1.2.5` |\n| [sendgrid](https://github.com/sendgrid/sendgrid-python) | `6.11.0` | `6.12.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.1.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.11.1` | `25.9.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.1.1` | `3.3.2` |\n| [zope-event](https://github.com/zopefoundation/zope.event) | `5.0` | `6.1` |\n| [zope-interface](https://github.com/zopefoundation/zope.interface) | `7.1.1` | `8.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.31` | `2.0.47` |\n| [pytailwindcss](https://github.com/timonweb/pytailwindcss) | `0.2.0` | `0.3.0` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `4.0.1` | `6.0.0` |\n| [legacy-cgi](https://github.com/jackrosenthal/legacy-cgi) | `2.6.2` | `2.6.4` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.1.0` | `12.1.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `asgiref` from 3.8.1 to 3.11.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.1 (2026-02-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSECURITY FIX CVE-2025-14550: There was a potential DoS vector for users of\nthe \u003ccode\u003easgiref.wsgi.WsgiToAsgi\u003c/code\u003e adapter. Malicious requests, including an unreasonably\nlarge number of values for the same header, could lead to resource exhaustion\nwhen building the WSGI environment.\u003c/p\u003e\n\u003cp\u003eTo mitigate this, the algorithm is changed to be more efficient, and\n\u003ccode\u003eWsgiToAsgi\u003c/code\u003e gains a new optional \u003ccode\u003eduplicate_header_limit\u003c/code\u003e parameter,\nwhich defaults to 100. This specifies the number of times a single header may\nbe repeated before the request is rejected as malformed.\u003c/p\u003e\n\u003cp\u003eYou may override \u003ccode\u003eduplicate_header_limit\u003c/code\u003e when configuring your application::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eapplication = WsgiToAsgi(wsgi_app, duplicate_header_limit=200)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSet \u003ccode\u003eduplicate_header_limit=None\u003c/code\u003e if you wish to disable this check.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in 3.11.0 in \u003ccode\u003esync_to_async\u003c/code\u003e when wrapping a callable\nwith an attribute named \u003ccode\u003econtext\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/537\"\u003e#537\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.1 (2025-07-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\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/django/asgiref/commit/d97a7339524c89798c510de6c142b663fe40400c\"\u003e\u003ccode\u003ed97a733\u003c/code\u003e\u003c/a\u003e Releasing 3.11.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/a50968a52a50a0bcb0f339ba41e8b52cbf74c604\"\u003e\u003ccode\u003ea50968a\u003c/code\u003e\u003c/a\u003e CVE-2025-14550: Fixed duplicate header handling in WsgiToAsgi.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/0fb85a4352b079ab8191cc593865bd99c987141f\"\u003e\u003ccode\u003e0fb85a4\u003c/code\u003e\u003c/a\u003e Fixed sync_to_async wrapping callables with attribute named \u003ccode\u003econtext\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2b28409ab83b3e4cf6fed9019403b71f8d7d1c51\"\u003e\u003ccode\u003e2b28409\u003c/code\u003e\u003c/a\u003e Updated Hypercorn homepage URL (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlparse` from 0.5.0 to 0.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG\"\u003esqlparse's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.5.5 (Dec 19, 2025)\u003c/h2\u003e\n\u003cp\u003eBug Fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DoS protection to raise SQLParseError instead of silently returning None\nwhen grouping limits are exceeded (issue827).\u003c/li\u003e\n\u003cli\u003eFix splitting of BEGIN TRANSACTION statements (issue826).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.5.4 (Nov 28, 2025)\u003c/h2\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd type annotations to top-level API functions and include py.typed marker\nfor PEP 561 compliance, enabling type checking with mypy and other tools\n(issue756).\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hook support. sqlparse can now be used as a pre-commit hook\nto automatically format SQL files. The CLI now supports multiple files and\nan \u003ccode\u003e--in-place\u003c/code\u003e flag for in-place editing (issue537).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eATTACH\u003c/code\u003e and \u003ccode\u003eDETACH\u003c/code\u003e to PostgreSQL keywords (pr808).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eINTERSECT\u003c/code\u003e to close keywords in WHERE clause (pr820).\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eREGEXP BINARY\u003c/code\u003e comparison operator (pr817).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug Fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd additional protection against denial of service attacks when parsing\nvery large lists of tuples. This enhances the existing recursion protections\nwith configurable limits for token processing to prevent DoS through\nalgorithmic complexity attacks. The new limits (MAX_GROUPING_DEPTH=100,\nMAX_GROUPING_TOKENS=10000) can be adjusted or disabled (by setting to None)\nif needed for legitimate large SQL statements.\u003c/li\u003e\n\u003cli\u003eRemove shebang from cli.py and remove executable flag (pr818).\u003c/li\u003e\n\u003cli\u003eFix strip_comments not removing all comments when input contains only\ncomments (issue801, pr803 by stropysh).\u003c/li\u003e\n\u003cli\u003eFix splitting statements with IF EXISTS/IF NOT EXISTS inside BEGIN...END\nblocks (issue812).\u003c/li\u003e\n\u003cli\u003eFix splitting on semicolons inside BEGIN...END blocks (issue809).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.5.3 (Dez 10, 2024)\u003c/h2\u003e\n\u003cp\u003eBug Fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis version introduces a more generalized handling of potential denial of\nservice attack (DOS) due to recursion errors for deeply nested statements.\nBrought up and fixed by \u003ca href=\"https://github.com/living180\"\u003e\u003ccode\u003e@​living180\u003c/code\u003e\u003c/a\u003e. Thanks a lot!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/0d240230939bfb3b751b504878b1c7df04a3cab3\"\u003e\u003ccode\u003e0d24023\u003c/code\u003e\u003c/a\u003e Bump version to 0.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/da67ac16b8fa2c5041458bee728c8a914bed2d37\"\u003e\u003ccode\u003eda67ac1\u003c/code\u003e\u003c/a\u003e Enhance DoS protection by raising SQLParseError for exceeded grouping limits ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/5ca50a2ee9b39e9efeea33e01f132d628144fb69\"\u003e\u003ccode\u003e5ca50a2\u003c/code\u003e\u003c/a\u003e Fix splitting of BEGIN TRANSACTION statements (fixes \u003ca href=\"https://redirect.github.com/andialbrecht/sqlparse/issues/826\"\u003e#826\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/acd8e5817b5be5f9b9a7b159c1bacc45179f4e44\"\u003e\u003ccode\u003eacd8e58\u003c/code\u003e\u003c/a\u003e Back to development version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/14e300b165b14d1a7662a071c6481b503d367528\"\u003e\u003ccode\u003e14e300b\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/96a67e286963b2497b1b3f7a1378327af6661998\"\u003e\u003ccode\u003e96a67e2\u003c/code\u003e\u003c/a\u003e Code cleanup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/1a3bfbd50b82c05d9adcc51bacba059671dc1bc7\"\u003e\u003ccode\u003e1a3bfbd\u003c/code\u003e\u003c/a\u003e Fix handling of semicolons inside BEGIN...END blocks (fixes \u003ca href=\"https://redirect.github.com/andialbrecht/sqlparse/issues/809\"\u003e#809\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/e92a032c81d51a6645b4f8c32470481894818ba0\"\u003e\u003ccode\u003ee92a032\u003c/code\u003e\u003c/a\u003e Fix handling of IF EXISTS statements in BEGIN...END blocks (fixes \u003ca href=\"https://redirect.github.com/andialbrecht/sqlparse/issues/812\"\u003e#812\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/149bebf06c788e93a9b0dbee0e5abbc8e347b8e6\"\u003e\u003ccode\u003e149bebf\u003c/code\u003e\u003c/a\u003e Update Changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/561a67e740e9623cf81ef99f1a6cd94337e24282\"\u003e\u003ccode\u003e561a67e\u003c/code\u003e\u003c/a\u003e Update AUTHORS.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/andialbrecht/sqlparse/compare/0.5.0...0.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jinja2` from 3.1.4 to 3.1.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/jinja/releases\"\u003ejinja2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.6\u003c/h2\u003e\n\u003cp\u003eThis is the Jinja 3.1.6 security release, which fixes security issues 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/Jinja2/3.1.6/\"\u003ehttps://pypi.org/project/Jinja2/3.1.6/\u003c/a\u003e\nChanges: \u003ca href=\"https://jinja.palletsprojects.com/en/stable/changes/#version-3-1-6\"\u003ehttps://jinja.palletsprojects.com/en/stable/changes/#version-3-1-6\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e|attr\u003c/code\u003e filter does not bypass the environment's attribute lookup, allowing the sandbox to apply its checks. \u003ca href=\"https://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7\"\u003ehttps://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.5\u003c/h2\u003e\n\u003cp\u003eThis is the Jinja 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Jinja2/3.1.5/\"\u003ehttps://pypi.org/project/Jinja2/3.1.5/\u003c/a\u003e\nChanges: \u003ca href=\"https://jinja.palletsprojects.com/changes/#version-3-1-5\"\u003ehttps://jinja.palletsprojects.com/changes/#version-3-1-5\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/jinja/milestone/16?closed=1\"\u003ehttps://github.com/pallets/jinja/milestone/16?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe sandboxed environment handles indirect calls to \u003ccode\u003estr.format\u003c/code\u003e, such as by passing a stored reference to a filter that calls its argument. \u003ca href=\"https://github.com/pallets/jinja/security/advisories/GHSA-q2x7-8rv6-6q7h\"\u003eGHSA-q2x7-8rv6-6q7h\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape template name before formatting it into error messages, to avoid issues with names that contain f-string syntax. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1792\"\u003e#1792\u003c/a\u003e, \u003ca href=\"https://github.com/pallets/jinja/security/advisories/GHSA-gmj6-6f8f-6699\"\u003eGHSA-gmj6-6f8f-6699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSandbox does not allow \u003ccode\u003eclear\u003c/code\u003e and \u003ccode\u003epop\u003c/code\u003e on known mutable sequence types. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2032\"\u003e#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCalling sync \u003ccode\u003erender\u003c/code\u003e for an async template uses \u003ccode\u003easyncio.run\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1952\"\u003e#1952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid unclosed \u003ccode\u003eauto_aiter\u003c/code\u003e warnings. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn an \u003ccode\u003eaclose\u003c/code\u003e-able \u003ccode\u003eAsyncGenerator\u003c/code\u003e from \u003ccode\u003eTemplate.generate_async\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving \u003ccode\u003eroot_render_func()\u003c/code\u003e unclosed in \u003ccode\u003eTemplate.generate_async\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving async generators unclosed in blocks, includes and extends. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe runtime uses the correct \u003ccode\u003econcat\u003c/code\u003e function for the current environment when calling block references. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1701\"\u003e#1701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e|unique\u003c/code\u003e async-aware, allowing it to be used after another async-aware filter. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e|int\u003c/code\u003e filter handles \u003ccode\u003eOverflowError\u003c/code\u003e from scientific notation. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1921\"\u003e#1921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake compiling deterministic for tuple unpacking in a \u003ccode\u003e{% set ... %}\u003c/code\u003e call. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2021\"\u003e#2021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dunder protocol (\u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e/etc) interaction with \u003ccode\u003eUndefined\u003c/code\u003e objects. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2025\"\u003e#2025\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e support for the internal \u003ccode\u003emissing\u003c/code\u003e object. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2027\"\u003e#2027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEnvironment.overlay(enable_async)\u003c/code\u003e is applied correctly. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2061\"\u003e#2061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe error message from \u003ccode\u003eFileSystemLoader\u003c/code\u003e includes the paths that were searched. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePackageLoader\u003c/code\u003e shows a clearer error message when the package does not contain the templates directory. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1705\"\u003e#1705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove annotations for methods returning copies. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1880\"\u003e#1880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eurlize\u003c/code\u003e does not add \u003ccode\u003emailto:\u003c/code\u003e to values like \u003ccode\u003e@a@b\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1870\"\u003e#1870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTests decorated with \u003ccode\u003e@pass_context\u003c/code\u003e can be used with the \u003ccode\u003e|select\u003c/code\u003e filter. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1624\"\u003e#1624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eset\u003c/code\u003e for multiple assignment (\u003ccode\u003ea, b = 1, 2\u003c/code\u003e) does not fail when the target is a namespace attribute. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1413\"\u003e#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eset\u003c/code\u003e in all branches of \u003ccode\u003e{% if %}{% elif %}{% else %}\u003c/code\u003e blocks does not cause the variable to be considered initially undefined. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1253\"\u003e#1253\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/jinja/blob/main/CHANGES.rst\"\u003ejinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.6\u003c/h2\u003e\n\u003cp\u003eReleased 2025-03-05\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e|attr\u003c/code\u003e filter does not bypass the environment's attribute lookup,\nallowing the sandbox to apply its checks. :ghsa:\u003ccode\u003ecpwx-vrp4-4pq7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.5\u003c/h2\u003e\n\u003cp\u003eReleased 2024-12-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe sandboxed environment handles indirect calls to \u003ccode\u003estr.format\u003c/code\u003e, such as\nby passing a stored reference to a filter that calls its argument.\n:ghsa:\u003ccode\u003eq2x7-8rv6-6q7h\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEscape template name before formatting it into error messages, to avoid\nissues with names that contain f-string syntax.\n:issue:\u003ccode\u003e1792\u003c/code\u003e, :ghsa:\u003ccode\u003egmj6-6f8f-6699\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSandbox does not allow \u003ccode\u003eclear\u003c/code\u003e and \u003ccode\u003epop\u003c/code\u003e on known mutable sequence\ntypes. :issue:\u003ccode\u003e2032\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCalling sync \u003ccode\u003erender\u003c/code\u003e for an async template uses \u003ccode\u003easyncio.run\u003c/code\u003e.\n:pr:\u003ccode\u003e1952\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAvoid unclosed \u003ccode\u003eauto_aiter\u003c/code\u003e warnings. :pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReturn an \u003ccode\u003eaclose\u003c/code\u003e-able \u003ccode\u003eAsyncGenerator\u003c/code\u003e from\n\u003ccode\u003eTemplate.generate_async\u003c/code\u003e. :pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving \u003ccode\u003eroot_render_func()\u003c/code\u003e unclosed in\n\u003ccode\u003eTemplate.generate_async\u003c/code\u003e. :pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving async generators unclosed in blocks, includes and extends.\n:pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe runtime uses the correct \u003ccode\u003econcat\u003c/code\u003e function for the current environment\nwhen calling block references. :issue:\u003ccode\u003e1701\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e|unique\u003c/code\u003e async-aware, allowing it to be used after another\nasync-aware filter. :issue:\u003ccode\u003e1781\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e|int\u003c/code\u003e filter handles \u003ccode\u003eOverflowError\u003c/code\u003e from scientific notation.\n:issue:\u003ccode\u003e1921\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMake compiling deterministic for tuple unpacking in a \u003ccode\u003e{% set ... %}\u003c/code\u003e\ncall. :issue:\u003ccode\u003e2021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix dunder protocol (\u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e/etc) interaction with \u003ccode\u003eUndefined\u003c/code\u003e\nobjects. :issue:\u003ccode\u003e2025\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e support for the internal \u003ccode\u003emissing\u003c/code\u003e object.\n:issue:\u003ccode\u003e2027\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEnvironment.overlay(enable_async)\u003c/code\u003e is applied correctly. :pr:\u003ccode\u003e2061\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe error message from \u003ccode\u003eFileSystemLoader\u003c/code\u003e includes the paths that were\nsearched. :issue:\u003ccode\u003e1661\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePackageLoader\u003c/code\u003e shows a clearer error message when the package does not\ncontain the templates directory. :issue:\u003ccode\u003e1705\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eImprove annotations for methods returning copies. :pr:\u003ccode\u003e1880\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eurlize\u003c/code\u003e does not add \u003ccode\u003emailto:\u003c/code\u003e to values like \u003ccode\u003e@a@b\u003c/code\u003e. :pr:\u003ccode\u003e1870\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/15206881c006c79667fe5154fe80c01c65410679\"\u003e\u003ccode\u003e1520688\u003c/code\u003e\u003c/a\u003e release version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/90457bbf33b8662926ae65cdde4c4c32e756e403\"\u003e\u003ccode\u003e90457bb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/065334d1ee5b7210e1a0a93c37238c86858f2af7\"\u003e\u003ccode\u003e065334d\u003c/code\u003e\u003c/a\u003e attr filter uses env.getattr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/033c20015c7ca899ab52eb921bb0f08e6d3dd145\"\u003e\u003ccode\u003e033c200\u003c/code\u003e\u003c/a\u003e start version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/bc68d4efa99c5f77334f0e519628558059ae8c35\"\u003e\u003ccode\u003ebc68d4e\u003c/code\u003e\u003c/a\u003e use global contributing guide (\u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2070\"\u003e#2070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/247de5e0c5062a792eb378e50e13e692885ee486\"\u003e\u003ccode\u003e247de5e\u003c/code\u003e\u003c/a\u003e use global contributing guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/ab8218c7a1b66b62e0ad6b941bd514e3a64a358f\"\u003e\u003ccode\u003eab8218c\u003c/code\u003e\u003c/a\u003e use project advisory link instead of global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/b4ffc8ff299dfd360064bea4cd2f862364601ad2\"\u003e\u003ccode\u003eb4ffc8f\u003c/code\u003e\u003c/a\u003e release version 3.1.5 (\u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2066\"\u003e#2066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/877f6e51be8e1765b06d911cfaa9033775f051d1\"\u003e\u003ccode\u003e877f6e5\u003c/code\u003e\u003c/a\u003e release version 3.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/8d588592653b052f957b720e1fc93196e06f207f\"\u003e\u003ccode\u003e8d58859\u003c/code\u003e\u003c/a\u003e remove test pypi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/jinja/compare/3.1.4...3.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 2.1.5 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.2\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.2/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-2\"\u003ehttps://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/14?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/14?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility when \u003ccode\u003e__str__\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e subclass. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/472\"\u003e#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild requires setuptools \u0026gt;= 70.1. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/475\"\u003e#475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.1\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.1/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-1\"\u003ehttps://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/13?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/13?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAddress compiler warnings that became errors in GCC 14. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix compatibility with proxy objects. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. The 3.0.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. 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/MarkupSafe/3.0.0/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-0\"\u003ehttps://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/10?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/10?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.13 and its experimental free-threaded build. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/461\"\u003e#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/348\"\u003e#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003edistutils\u003c/code\u003e imports to \u003ccode\u003esetuptools\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/399\"\u003e#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse deferred evaluation of annotations. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/400\"\u003e#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate signatures for \u003ccode\u003eMarkup\u003c/code\u003e methods to match \u003ccode\u003estr\u003c/code\u003e signatures. Use positional-only arguments. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/400\"\u003e#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome \u003ccode\u003estr\u003c/code\u003e methods on \u003ccode\u003eMarkup\u003c/code\u003e no longer escape their argument: \u003ccode\u003estrip\u003c/code\u003e, \u003ccode\u003elstrip\u003c/code\u003e, \u003ccode\u003erstrip\u003c/code\u003e, \u003ccode\u003eremoveprefix\u003c/code\u003e, \u003ccode\u003eremovesuffix\u003c/code\u003e, \u003ccode\u003epartition\u003c/code\u003e, and \u003ccode\u003erpartition\u003c/code\u003e; \u003ccode\u003ereplace\u003c/code\u003e only escapes its \u003ccode\u003enew\u003c/code\u003e argument. These methods are conceptually linked to search methods such as \u003ccode\u003ein\u003c/code\u003e, \u003ccode\u003efind\u003c/code\u003e, and \u003ccode\u003eindex\u003c/code\u003e, which already do not escape their argument. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/401\"\u003e#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e__version__\u003c/code\u003e attribute is deprecated. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;markupsafe\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/402\"\u003e#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up escaping plain strings by 40%. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/434\"\u003e#434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify speedups implementation. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/437\"\u003e#437\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/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.0.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility when \u003ccode\u003e__str__\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e subclass. :issue:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild requires setuptools \u0026gt;= 70.1. :issue:\u003ccode\u003e475\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.0.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAddress compiler warnings that became errors in GCC 14. :issue:\u003ccode\u003e466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix compatibility with proxy objects. :issue:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.0.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.13 and its experimental free-threaded build. :pr:\u003ccode\u003e461\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e348\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003edistutils\u003c/code\u003e imports to \u003ccode\u003esetuptools\u003c/code\u003e. :pr:\u003ccode\u003e399\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse deferred evaluation of annotations. :pr:\u003ccode\u003e400\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate signatures for \u003ccode\u003eMarkup\u003c/code\u003e methods to match \u003ccode\u003estr\u003c/code\u003e signatures. Use\npositional-only arguments. :pr:\u003ccode\u003e400\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSome \u003ccode\u003estr\u003c/code\u003e methods on \u003ccode\u003eMarkup\u003c/code\u003e no longer escape their argument:\n\u003ccode\u003estrip\u003c/code\u003e, \u003ccode\u003elstrip\u003c/code\u003e, \u003ccode\u003erstrip\u003c/code\u003e, \u003ccode\u003eremoveprefix\u003c/code\u003e, \u003ccode\u003eremovesuffix\u003c/code\u003e,\n\u003ccode\u003epartition\u003c/code\u003e, and \u003ccode\u003erpartition\u003c/code\u003e; \u003ccode\u003ereplace\u003c/code\u003e only escapes its \u003ccode\u003enew\u003c/code\u003e\nargument. These methods are conceptually linked to search methods such as\n\u003ccode\u003ein\u003c/code\u003e, \u003ccode\u003efind\u003c/code\u003e, and \u003ccode\u003eindex\u003c/code\u003e, which already do not escape their argument.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/2.1.5...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.2.2 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.02.02...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.7 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/releases\"\u003eidna's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.10\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.9\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression where IDNAError exception was not being produced for certain inputs.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.5 as it is no longer testable.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements\u003c/li\u003e\n\u003cli\u003eUpdates to package testing using Github actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Hugo van Kemenade for contributions to this release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kjd/idna/compare/v3.7...v3.8\"\u003ehttps://github.com/kjd/idna/compare/v3.7...v3.8\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/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.10 (2024-09-15)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReverted to Unicode 15.1.0 data. Unicode 16 has some significant changes\nto UTS46 processing that will require more work to properly implement.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.9 (2024-09-13)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0\u003c/li\u003e\n\u003cli\u003eDeprecate setup.cfg in favour of pyproject.toml\u003c/li\u003e\n\u003cli\u003eUse ruff for code formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Waket Zheng for contributions to this release.\u003c/p\u003e\n\u003cp\u003e3.8 (2024-08-23)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression where IDNAError exception was not being produced for\ncertain inputs.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.5 as it is no\nlonger testable.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements\u003c/li\u003e\n\u003cli\u003eUpdates to package testing using Github actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Hugo van Kemenade for contributions to this release.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.7...v3.11\"\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.2 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\u003ch2\u003ev2.32.3\u003c/h2\u003e\n\u003ch2\u003e2.32.3 (2024-05-29)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug breaking the ability to specify custom SSLContexts in sub-classes of\nHTTPAdapter. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6716\"\u003e#6716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where Requests started failing to run on Python versions compiled\nwithout the \u003ccode\u003essl\u003c/code\u003e module. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6724\"\u003e#6724\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\u003ch2\u003e2.32.3 (2024-05-29)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug breaking the ability to specify custom SSLContexts in sub-classes of\nHTTPAdapter. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6716\"\u003e#6716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where Requests started failing to run on Python versions compiled\nwithout the \u003ccode\u003essl\u003c/code\u003e module. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6724\"\u003e#6724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/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.2...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\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.1 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\u003ch2\u003e2.6.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. 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\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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.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/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly...\n\n_Description has been truncated_","html_url":"https://github.com/DepositGuard/deposit-guard-api/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DepositGuard%2Fdeposit-guard-api/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"2889080264","node_id":"PR_kwDOOPmYHc6sM93I","number":45,"state":"open","title":"Bump uritemplate from 4.1.1 to 4.2.0 in /app","user":"dependabot[bot]","labels":[],"assignees":["p3rcypj"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T07:18:05.000Z","updated_at":"2025-10-06T07:18:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/app","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/3dbionotes-community/BWS/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/3dbionotes-community%2FBWS/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"},{"uuid":"2888495969","node_id":"PR_kwDOLBeFW86sKvNh","number":288,"state":"closed","title":"Build(deps): Bump uritemplate from 4.1.1 to 4.2.0 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-07T06:09:56.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T00:16:19.000Z","updated_at":"2025-10-07T06:09:57.000Z","time_to_close":107617,"merged_at":"2025-10-07T06:09:56.000Z","merged_by":"Ewa-Anna","closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/Ewa-Anna/Django-Task-Tracker/pull/288","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ewa-Anna%2FDjango-Task-Tracker/issues/288","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/288/packages"},{"uuid":"2820947448","node_id":"PR_kwDOJBTF2c6oJD34","number":454,"state":"open","title":"build(deps): bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-12T01:25:56.000Z","updated_at":"2025-09-12T13:28:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/bancolombia/django-DefectDojo/pull/454","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bancolombia%2Fdjango-DefectDojo/issues/454","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/454/packages"},{"uuid":"2808064757","node_id":"PR_kwDOFc3u6c6nX6r1","number":169,"state":"open","title":"Bump the python-dependencies group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T12:28:12.000Z","updated_at":"2025-09-08T12:28:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":12,"packages":[{"name":"django","old_version":"5.1.7","new_version":"5.2.6","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"django-settings-holder","old_version":"0.2.2","new_version":"0.3.0","repository_url":"https://github.com/MrThearMan/django-settings-holder"},{"name":"cryptography","old_version":"44.0.2","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.8.0","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"pytest-django","old_version":"4.10.0","new_version":"4.11.1","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"tox","old_version":"4.25.0","new_version":"4.30.2","repository_url":"https://github.com/tox-dev/tox"},{"name":"pymdown-extensions","old_version":"10.14.3","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"mkdocs-mermaid2-plugin","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/fralau/mkdocs-mermaid2-plugin"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.7` | `5.2.6` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [django-settings-holder](https://github.com/MrThearMan/django-settings-holder) | `0.2.2` | `0.3.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `45.0.7` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.8.0` | `7.10.6` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.10.0` | `4.11.1` |\n| [tox](https://github.com/tox-dev/tox) | `4.25.0` | `4.30.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.14.3` | `10.16.1` |\n| [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin) | `1.2.1` | `1.2.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n\n\nUpdates `django` from 5.1.7 to 5.2.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/75c4403f07b8ad25893f7832dbe8fc6814b53b2d\"\u003e\u003ccode\u003e75c4403\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.6 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4c044fcc866ec226f612c475950b690b0139d243\"\u003e\u003ccode\u003e4c044fc\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-57833 -- Protected FilteredRelation against SQL inject...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e87ca3d6fa6fb12e06f9c755ecd3ebc3a528e02b\"\u003e\u003ccode\u003ee87ca3d\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.6 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ebec2c93230216f128184f5563215ad7760a7fc5\"\u003e\u003ccode\u003eebec2c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed unused import in docs/ref/models/expressions.txt example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ace59cb83b87a4fdeab29424ea134e78de24fb27\"\u003e\u003ccode\u003eace59cb\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36431\"\u003e#36431\u003c/a\u003e -- Returned tuples for multi-column ForeignObject in val...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16a12a979989565f471ef1a2011bab59f8226f05\"\u003e\u003ccode\u003e16a12a9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35831\"\u003e#35831\u003c/a\u003e -- Documented the model form meta API in model form refe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/51753bc80925ecbe07d944dd22449d5ca867b9d4\"\u003e\u003ccode\u003e51753bc\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.6, 5.1.12, and 4.2.24.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a4864551259f70e044043cf64b6925b816352156\"\u003e\u003ccode\u003ea486455\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected definition of \u0026quot;needsinfo\u0026quot; triage stage in contributing guide.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f8e572e843b037dea9c79bcecd7b9626b2b4ceba\"\u003e\u003ccode\u003ef8e572e\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed reference to flake8 file exclusions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9c9ed6fd7a8399113a18b979c8cd6f04cfbfa30b\"\u003e\u003ccode\u003e9c9ed6f\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35530\"\u003e#35530\u003c/a\u003e -- Corrected deprecation message in auth.alogin().\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.7...5.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-settings-holder` from 0.2.2 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/releases\"\u003edjango-settings-holder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChange the format of \u003ccode\u003eREMOVED_SETTINGS\u003c/code\u003e to be able to determine replacing settings\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ehttps://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/982b4f9f1a2d64afa306c1bf07cac4573c778aaa\"\u003e\u003ccode\u003e982b4f9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/92553f9083c6d18490cbb944058644faab4bfc98\"\u003e\u003ccode\u003e92553f9\u003c/code\u003e\u003c/a\u003e Various fixes and improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/fdd6bba4d55cc14b653b240cec6e4f839d032943\"\u003e\u003ccode\u003efdd6bba\u003c/code\u003e\u003c/a\u003e Add to .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/435d3dcbc1f3357048f4c8b2a4fa11706f82a03d\"\u003e\u003ccode\u003e435d3dc\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/01422a0af4c6920a0362ae51dfde30e3b7e046b3\"\u003e\u003ccode\u003e01422a0\u003c/code\u003e\u003c/a\u003e Update CI test runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/871d93974a248fe93338a3a61d981da092ccc40f\"\u003e\u003ccode\u003e871d939\u003c/code\u003e\u003c/a\u003e Install pytest-django in tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/6b922f785ea774f3ea5ba9fc52d318d0fee61274\"\u003e\u003ccode\u003e6b922f7\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDJANGO_SETTINGS_MODULE\u003c/code\u003e to to env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/9f53de6c87426b3547b9464cf952c7c3d7b2d278\"\u003e\u003ccode\u003e9f53de6\u003c/code\u003e\u003c/a\u003e Add better errors from old and unused settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/c25ebf9227edb9cc3ab4522750515487dea4b7a7\"\u003e\u003ccode\u003ec25ebf9\u003c/code\u003e\u003c/a\u003e Update docs style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/0155ec17eabf5263b949ece7b3f2e4e23a41c84f\"\u003e\u003ccode\u003e0155ec1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 44.0.2 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\nconsidered secure, and is supported only for backwards compatibility.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003cp\u003e45.0.3 - 2025-05-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed decrypting PKCS#8 files encrypted with long salts (this impacts keys\n  encrypted by Bouncy Castle).\n* Fixed decrypting PKCS#8 files encrypted with DES-CBC-MD5. While wildly\n  insecure, this remains prevalent.\n\u003cp\u003e.. _v45-0-2:\u003c/p\u003e\n\u003cp\u003e45.0.2 - 2025-05-17\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed using \u003ccode\u003emypy\u003c/code\u003e with \u003ccode\u003ecryptography\u003c/code\u003e on older versions of Python.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-1:\u003c/p\u003e\n\u003cp\u003e45.0.1 - 2025-05-17\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.0.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/50384959872c84933b6059c3b697139c8fcdcdea\"\u003e\u003ccode\u003e5038495\u003c/code\u003e\u003c/a\u003e backports for 45.0.3 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12979\"\u003e#12979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f81c07535ddf2d26cb1a27e70a9967ab708b8056\"\u003e\u003ccode\u003ef81c075\u003c/code\u003e\u003c/a\u003e Backport mypy fixes for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12930\"\u003e#12930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/8ea28e0bc724e57433f4f062795d91c0a367e9ad\"\u003e\u003ccode\u003e8ea28e0\u003c/code\u003e\u003c/a\u003e bump for 45.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12922\"\u003e#12922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67840977c95a23d0dcfba154e303014026df0d3e\"\u003e\u003ccode\u003e6784097\u003c/code\u003e\u003c/a\u003e bump for 45 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12886\"\u003e#12886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2d9c1c9cbe650f2888c14476a4b30ef85d3fd2bc\"\u003e\u003ccode\u003e2d9c1c9\u003c/code\u003e\u003c/a\u003e bump MSRV to 1.74 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12919\"\u003e#12919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6c18874cc2e76f173b77c67609cfb4d3495964c3\"\u003e\u003ccode\u003e6c18874\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12918\"\u003e#12918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/44.0.2...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=true\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.0 (2025-06-02)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.8.0 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.8.0...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-django` from 4.10.0 to 4.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-django/releases\"\u003epytest-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\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/pytest-dev/pytest-django/blob/main/docs/changelog.rst\"\u003epytest-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a regression in v4.11.0 for Django \u003ccode\u003eTestCase\u003c/code\u003e tests using the \u003ccode\u003edatabases\u003c/code\u003e class variable (\u003ccode\u003e[#1188](https://github.com/pytest-dev/pytest-django/issues/1188) \u0026lt;https://github.com/pytest-dev/pytest-django/issues/1188\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.11.0 (2025-04-01)\u003c/h2\u003e\n\u003cp\u003eCompatibility\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded official support for Django 5.2 (\u003ccode\u003ePR [#1179](https://github.com/pytest-dev/pytest-django/issues/1179) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1179\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDropped testing on MySQL’s MyISAM storage engine (\u003ccode\u003ePR [#1180](https://github.com/pytest-dev/pytest-django/issues/1180) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1180\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStopped setting up and serializing databases on test session setup when not needed (the database is not requested / \u003ccode\u003eserialized_rollback\u003c/code\u003e is not used).\nOn test databases with large amounts of pre-seeded data, this may remove a delay of a few seconds when running \u003ccode\u003epytest --reuse-db\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe determination of which databases to setup is done by static inspection of the test suite.\nUsing pytest's dynamic features to request db access, such as :meth:\u003ccode\u003erequest.getfixturevalue(\u0026quot;db\u0026quot;) \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e, may throw off this analysis.\nIf you start seeing \u003ccode\u003eDatabaseOperationForbidden\u003c/code\u003e or \u0026quot;unable to open database\u0026quot; errors, this is likely the cause.\nTo fix this, decorate at least one test with the :func:\u003ccode\u003edjango_db \u0026lt;pytest.mark.django_db\u0026gt;\u003c/code\u003e marker with appropriate \u003ccode\u003edatabases\u003c/code\u003e and \u003ccode\u003eserialized_rollback\u003c/code\u003e settings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/5ada9c1596ee9e0624801d553995d98d2e3ccce8\"\u003e\u003ccode\u003e5ada9c1\u003c/code\u003e\u003c/a\u003e Release 4.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/cf3f0bb89be0d741e7c4e10469d0559e86753cc7\"\u003e\u003ccode\u003ecf3f0bb\u003c/code\u003e\u003c/a\u003e fixtures: fixup a regression in previous release for TestCase multi-db support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6d5c272519037031f0b68d78dca44727b860d65e\"\u003e\u003ccode\u003e6d5c272\u003c/code\u003e\u003c/a\u003e Release 4.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/8000db04f07822861331d0df8ef52f9c67eafc00\"\u003e\u003ccode\u003e8000db0\u003c/code\u003e\u003c/a\u003e Only setup and serialize databases as needed by tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6f7fc269f871da0134d9155ca856b29582aa46ce\"\u003e\u003ccode\u003e6f7fc26\u003c/code\u003e\u003c/a\u003e Add optional integration of pytest into django's \u003ccode\u003emanage.py test\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3071a666dce1f60299bf89bd9c268ac7e0ee459d\"\u003e\u003ccode\u003e3071a66\u003c/code\u003e\u003c/a\u003e docs/conf.py: format with ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3f44e50ff326c23a44bf5633423d491a251d8eed\"\u003e\u003ccode\u003e3f44e50\u003c/code\u003e\u003c/a\u003e fixtures: avoid unnecessary closure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/b7328696ad7a5bfc308b60c909972a9166fce8a3\"\u003e\u003ccode\u003eb732869\u003c/code\u003e\u003c/a\u003e Remove testing on MyISAM (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/e362f4c6303b203e5449ed023b353ad81f40a753\"\u003e\u003ccode\u003ee362f4c\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-django/compare/v4.10.0...v4.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.25.0 to 4.30.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.30.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3603\"\u003etox-dev/tox#3603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure automatically provisioned environment is torn down by \u003ca href=\"https://github.com/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3601\"\u003etox-dev/tox#3601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 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/tox-dev/tox/pull/3604\"\u003etox-dev/tox#3604\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.1...4.30.2\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.1...4.30.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Tox from hanging with \u003ccode\u003e--installpkg\u003c/code\u003e sdist due to orphaned build backend by \u003ca href=\"https://github.com/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3530\"\u003etox-dev/tox#3530\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/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3530\"\u003etox-dev/tox#3530\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.0...4.30.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.0...4.30.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass through \u003ccode\u003eCI\u003c/code\u003e as \u003ccode\u003e__TOX_ENVIRONMENT_VARIABLE_ORIGINAL_CI\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3592\"\u003etox-dev/tox#3592\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/tox-dev/tox/pull/3596\"\u003etox-dev/tox#3596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the built docs HTML path hint in \u003ccode\u003etox.toml\u003c/code\u003e by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3594\"\u003etox-dev/tox#3594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u0026quot;version added\u0026quot; note for \u003ccode\u003etox_extend_envs\u003c/code\u003e by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3595\"\u003etox-dev/tox#3595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: provide clear messaging about config file loading by \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3578\"\u003etox-dev/tox#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etox_extend_envs\u003c/code\u003e list can be read twice by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3598\"\u003etox-dev/tox#3598\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/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3592\"\u003etox-dev/tox#3592\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.29.0...4.30.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.29.0...4.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.29.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: environment variables contain strings by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3575\"\u003etox-dev/tox#3575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐍 Fix sys_platform Fixture Leakage breaking the CI by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3589\"\u003etox-dev/tox#3589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose a new \u003ccode\u003etox_extend_envs\u003c/code\u003e hook in plugins API by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3591\"\u003etox-dev/tox#3591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.4...4.29.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.4...4.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.30.2 (2025-09-04)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.30.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Previously, when tox ran in an automatically provisioned environment, it could hang waiting for a PEP 517 build backend\n  if used in conjunction with the ``--installpkg`` option. This has been fixed by properly tearing down the automatically\n  provisioned environment after the tests.\n  - by :user:`vytas7` (:issue:`3600`)\n\u003ch2\u003ev4.30.1 (2025-09-03)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.30.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent tox from hanging upon exit due to orphaned build threads and subprocesses when the \u003ccode\u003e--installpkg\u003c/code\u003e option is\nused with \u003cem\u003esdist\u003c/em\u003e.\n\u003cul\u003e\n\u003cli\u003eby :user:\u003ccode\u003evytas7\u003c/code\u003e (:issue:\u003ccode\u003e3530\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.30.0 (2025-09-03)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.30.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add ``__TOX_ENVIRONMENT_VARIABLE_ORIGINAL_CI``, which passes through the ``CI`` variable if present. This is intended for use by other libraries to detect if tox is running under CI. (:issue:`3442`)\n\u003cp\u003eBugfixes - 4.30.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMakes the error message more clear when pyproject.toml file cannot be loaded\nor is missing expected keys. (:issue:\u003ccode\u003e3578\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe :func:\u003ccode\u003etox_extend_envs() hook \u0026lt;tox.plugin.spec.tox_extend_envs\u0026gt;\u003c/code\u003e\nrecently added in :pull:\u003ccode\u003e3591\u003c/code\u003e turned out to not work well with\n\u003ccode\u003etox run\u003c/code\u003e. It was fixed internally, not to exhaust the underlying\niterator on the first use.\u003c/p\u003e\n\u003cp\u003e-- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e (:issue:\u003ccode\u003e3598\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.29.0 (2025-08-29)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.29.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- A new tox life cycle event is now exposed for use via :doc:`Plugins\n  API \u0026lt;/plugins\u0026gt;` -- by :user:`webknjaz`.\n\u003cp\u003eThe corresponding hook point is :func:\u003ccode\u003etox_extend_envs \u0026amp;lt;tox.plugin.spec.tox_extend_envs\u0026amp;gt;\u003c/code\u003e. It allows plugin authors to\ndeclare ephemeral environments that they can then populate through\nthe in-memory configuration loader interface.\u003c/p\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/5e0784a7f5ea5f89c089351c9a7e23863bd131b9\"\u003e\u003ccode\u003e5e0784a\u003c/code\u003e\u003c/a\u003e release 4.30.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/64e8a34883369a80350b311ceb3550f30931cd51\"\u003e\u003ccode\u003e64e8a34\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3604\"\u003e#3604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/723008808899afec3c1aa7412bd7771694d66f5a\"\u003e\u003ccode\u003e7230088\u003c/code\u003e\u003c/a\u003e Ensure automatically provisioned environment is torn down (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/2c31dbcbfc4d28944b4116b86a70420a815a012a\"\u003e\u003ccode\u003e2c31dbc\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3603\"\u003e#3603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b33a43c270eb87e61833b7ed934b401d23aeded5\"\u003e\u003ccode\u003eb33a43c\u003c/code\u003e\u003c/a\u003e release 4.30.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/9ea1c3223aef5d919dcd44baf0bf2de4aedbf7f7\"\u003e\u003ccode\u003e9ea1c32\u003c/code\u003e\u003c/a\u003e Prevent Tox from hanging with \u003ccode\u003e--installpkg\u003c/code\u003e sdist due to orphaned build back...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/aa90652cd6b451ca1cf75144467b23d32daab448\"\u003e\u003ccode\u003eaa90652\u003c/code\u003e\u003c/a\u003e release 4.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/48fecab4a8691674448c39ab7cde6531038fb308\"\u003e\u003ccode\u003e48fecab\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003etox_extend_envs\u003c/code\u003e list can be read twice (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3598\"\u003e#3598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/0b8f66f259f8d0ab413d5041834073f1f9066231\"\u003e\u003ccode\u003e0b8f66f\u003c/code\u003e\u003c/a\u003e fix: provide clear messaging about config file loading (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/adf0997b760ecd2a877e0f42f01da996911f6f18\"\u003e\u003ccode\u003eadf0997\u003c/code\u003e\u003c/a\u003e Add a \u0026quot;version added\u0026quot; note for \u003ccode\u003etox_extend_envs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3595\"\u003e#3595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.25.0...4.30.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.14.3 to 10.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.6.1\u003c/h2\u003e\n\u003ch2\u003e10.16.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Inefficient regular expression pattern for figure caption numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add early support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Snippets: Added \u003ccode\u003emax_retries\u003c/code\u003e and \u003ccode\u003ebackoff_retries\u003c/code\u003e options to configure new retry logic for HTTP 429\nerrors (Too Many Requests client error).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Caption: Prefix templates are now preserved exactly as specified allowing the insertion of HTML tags if\ndesired.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Caption: Fix issue where manual numbers in auto were not respected appropriately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: SuperFences: Add \u003ccode\u003erelaxed_headers\u003c/code\u003e option which can tolerate bad content in the fenced code header. When\nenabled, code blocks with bad content in the header will likely still convert into code blocks, often respecting\nthe specified language.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add type hints to the Blocks interface and a few additional files.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Fix some corner cases of nested blocks with lists.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Tab and Tabbed: Fix a case where tabs could fail if \u003ccode\u003ecombine_header_slug\u003c/code\u003e was enabled and there was no\nheader.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/b50d15a56850ed1408a284bba81cc019c6bd72e8\"\u003e\u003ccode\u003eb50d15a\u003c/code\u003e\u003c/a\u003e Caption pattern should match a literal dot (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/f64422f87c05031a8c8d62b1988bf76e8f65f27f\"\u003e\u003ccode\u003ef64422f\u003c/code\u003e\u003c/a\u003e Update copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9edb92606fc813e983fce3187862a4f28bb15886\"\u003e\u003ccode\u003e9edb926\u003c/code\u003e\u003c/a\u003e Use Trusted Publisher\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d3d4f990463e50b1ba1e20830832285d92990c7\"\u003e\u003ccode\u003e7d3d4f9\u003c/code\u003e\u003c/a\u003e Add early support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/beb841e6f968b81403166d685b083fe2bde84bbc\"\u003e\u003ccode\u003ebeb841e\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/620d7fded457a0b5317019fa461a27f484a0d3d4\"\u003e\u003ccode\u003e620d7fd\u003c/code\u003e\u003c/a\u003e Docs: update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a49f32aa4ac91d97c7c10c9abe7f654b5ec802e5\"\u003e\u003ccode\u003ea49f32a\u003c/code\u003e\u003c/a\u003e Refactor for mypy issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/52a481b5591879f49baffecf4275f351d27a3759\"\u003e\u003ccode\u003e52a481b\u003c/code\u003e\u003c/a\u003e Docs: update JS dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2a1828accdc2371d97610fbbb574dd878e090b54\"\u003e\u003ccode\u003e2a1828a\u003c/code\u003e\u003c/a\u003e Allow raw HTML in caption prefix (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/fbf4bf22da3bc864f24b4ee6a2c05b145fb6c304\"\u003e\u003ccode\u003efbf4bf2\u003c/code\u003e\u003c/a\u003e Fix issue where manual captions in auto were not respected properly (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.14.3...10.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-mermaid2-plugin` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-mermaid2-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2, 2025-08-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: deprecation warning by BeautifulSoup (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/119\"\u003e#119\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/120\"\u003e#120\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/fralau/mkdocs-mermaid2-plugin/commit/4959ee4e89459b04c2404c7d742f41b2dd4f9fcc\"\u003e\u003ccode\u003e4959ee4\u003c/code\u003e\u003c/a\u003e Bump version for fix of \u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/119\"\u003e#119\u003c/a\u003e (Deprecation warning)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0c12a8b1542bfc6ef598eb5ef1fb8ba0733e22e4\"\u003e\u003ccode\u003e0c12a8b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/119\"\u003e#119\u003c/a\u003e from omarirfa/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/fbfcc320a02cb1f0b9463d49d3672f356dc7ddb2\"\u003e\u003ccode\u003efbfcc32\u003c/code\u003e\u003c/a\u003e bug: fixing replacewith depreciation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0511d01ede2e92ec9c79ee7d82c1b37bc5589fca\"\u003e\u003ccode\u003e0511d01\u003c/code\u003e\u003c/a\u003e Minor updates to the Debug section, for \u003ccode\u003eextra_javascript\u003c/code\u003e(\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/111\"\u003e#111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/b6f04e8fab9a9029beda30e63629aef003c8fd01\"\u003e\u003ccode\u003eb6f04e8\u003c/code\u003e\u003c/a\u003e Update documentation to clarify \u003ccode\u003eextra_javascript\u003c/code\u003e as failsafe (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/111\"\u003e#111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.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/MrThearMan/jwt-email-auth/pull/169","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrThearMan%2Fjwt-email-auth/issues/169","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/169/packages"},{"uuid":"2790891184","node_id":"PR_kwDOGLHsfc6mWZ6w","number":4598,"state":"closed","title":"Bump the ofe-minor-and-patch-updates group across 1 directory with 53 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2025-09-03T13:08:32.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-01T23:26:19.000Z","updated_at":"2025-09-02T05:28:11.000Z","time_to_close":135733,"merged_at":"2025-09-03T13:08:32.000Z","merged_by":"siddhartha-quad","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":53,"packages":[{"name":"argcomplete","old_version":"3.6.1","new_version":"3.6.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"asgiref","old_version":"3.8.1","new_version":"3.9.1","repository_url":"https://github.com/django/asgiref"},{"name":"astroid","old_version":"3.3.9","new_version":"3.3.11","repository_url":"https://github.com/pylint-dev/astroid"},{"name":"certifi","old_version":"2025.1.31","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.8","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"crispy-bootstrap5","old_version":"2025.4","new_version":"2025.6","repository_url":"https://github.com/django-crispy-forms/crispy-bootstrap5"},{"name":"cryptography","old_version":"45.0.3","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"dill","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"django","old_version":"5.1.10","new_version":"5.2.5","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.6.0","new_version":"65.11.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-crispy-forms","old_version":"2.3","new_version":"2.4","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.25.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.166.0","new_version":"2.179.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.40.3","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-artifact-registry","old_version":"1.15.2","new_version":"1.16.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-secret-manager","old_version":"2.22.1","new_version":"2.24.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-build","old_version":"3.31.0","new_version":"3.31.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-billing","old_version":"1.16.2","new_version":"1.16.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.31.1","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-compute","old_version":"1.29.0","new_version":"1.35.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.1.1","new_version":"3.3.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.5.0","new_version":"1.7.1","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"googleapis-common-protos","old_version":"1.69.2","new_version":"1.70.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.69.0","new_version":"1.74.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.69.0","new_version":"1.74.0"},{"name":"httplib2","old_version":"0.22.0","new_version":"0.30.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"identify","old_version":"2.6.9","new_version":"2.6.13","repository_url":"https://github.com/pre-commit/identify"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"lazy-object-proxy","old_version":"1.10.0","new_version":"1.12.0","repository_url":"https://github.com/ionelmc/python-lazy-object-proxy"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.2","repository_url":"https://github.com/Instagram/LibCST"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"oauthlib","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/oauthlib/oauthlib"},{"name":"path","old_version":"17.1.0","new_version":"17.1.1","repository_url":"https://github.com/jaraco/path"},{"name":"platformdirs","old_version":"4.3.7","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pylint","old_version":"3.3.6","new_version":"3.3.8","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pylint-plugin-utils","old_version":"0.8.2","new_version":"0.9.0","repository_url":"https://github.com/PyCQA/pylint-plugin-utils"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.24.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"rsa","old_version":"4.9","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.18.15"},{"name":"setuptools-rust","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/PyO3/setuptools-rust"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"uvicorn","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/encode/uvicorn"},{"name":"virtualenv","old_version":"20.30.0","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wrapt","old_version":"1.17.2","new_version":"1.17.3","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"zipp","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group with 53 updates in the /community/front-end/ofe directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.1` | `3.6.2` |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.9.1` |\n| [astroid](https://github.com/pylint-dev/astroid) | `3.3.9` | `3.3.11` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.1.31` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.2.1` |\n| [crispy-bootstrap5](https://github.com/django-crispy-forms/crispy-bootstrap5) | `2025.4` | `2025.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.3` | `45.0.7` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.9` | `0.4.0` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [django](https://github.com/django/django) | `5.1.10` | `5.2.5` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.6.0` | `65.11.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.3` | `2.4` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.24.2` | `2.25.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.166.0` | `2.179.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.40.3` |\n| [google-cloud-artifact-registry](https://github.com/googleapis/google-cloud-python) | `1.15.2` | `1.16.1` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.22.1` | `2.24.0` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.0` | `3.31.3` |\n| [google-cloud-billing](https://github.com/googleapis/google-cloud-python) | `1.16.2` | `1.16.3` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.29.0` | `2.31.1` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.29.0` | `1.35.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.1` | `3.3.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.5.0` | `1.7.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.69.2` | `1.70.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.69.0` | `1.74.0` |\n| [grpcio-status](https://grpc.io) | `1.69.0` | `1.74.0` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.22.0` | `0.30.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.9` | `2.6.13` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.1` |\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) | `1.10.0` | `1.12.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.2` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [oauthlib](https://github.com/oauthlib/oauthlib) | `3.2.2` | `3.3.1` |\n| [path](https://github.com/jaraco/path) | `17.1.0` | `17.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.7` | `4.4.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [pylint](https://github.com/pylint-dev/pylint) | `3.3.6` | `3.3.8` |\n| [pylint-plugin-utils](https://github.com/PyCQA/pylint-plugin-utils) | `0.8.2` | `0.9.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.24.0` | `0.27.1` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.9` | `4.9.1` |\n| ruamel-yaml | `0.18.10` | `0.18.15` |\n| [setuptools-rust](https://github.com/PyO3/setuptools-rust) | `1.11.0` | `1.12.0` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [uvicorn](https://github.com/encode/uvicorn) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.30.0` | `20.34.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.2` | `1.17.3` |\n| [zipp](https://github.com/jaraco/zipp) | `3.21.0` | `3.23.0` |\n\n\nUpdates `argcomplete` from 3.6.1 to 3.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\nThis reverts a regression introduced in zsh tab completion configurations utilizing multiple matchers.\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/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.6.2 (2025-04-02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRevert “zsh: skip repeat Python runs in the same completion run” This\nreverts a regression introduced in zsh tab completion configurations\nutilizing multiple matchers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a0143a96b4f26f363cfb5165e93c86c885e0ad12\"\u003e\u003ccode\u003ea0143a9\u003c/code\u003e\u003c/a\u003e v3.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/2e5d43e189a7074c7b663978ba68a3ab0fa21f77\"\u003e\u003ccode\u003e2e5d43e\u003c/code\u003e\u003c/a\u003e Reformat file with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/83d36c56739a40126f8cb70413c64ac1f3264ea7\"\u003e\u003ccode\u003e83d36c5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.1...v3.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.8.1 to 3.9.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.1 (2025-07-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip CPython specific garbage collection test on pypy. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrops support for (end-of-life) Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes an error with conflicting kwargs between AsyncToSync and the wrapped\nfunction. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/471\"\u003e#471\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes Local isolation between asyncio Tasks. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/478\"\u003e#478\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a deadlock in CurrentThreadExecutor with nested async_to_sync →\nsync_to_async → async_to_sync → create_task calls. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe ApplicationCommunicator testing utility will now return the task result\nif it's already completed on send_input and receive_nothing. You may need to\ncatch (e.g.) the asyncio.exceptions.CancelledError if sending messages to\nalready finished consumers in your tests. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fbe9506df140a437921a01ea824dbe51d8c38c24\"\u003e\u003ccode\u003efbe9506\u003c/code\u003e\u003c/a\u003e Releasing 3.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fae2ab10f12858b529b01e6e812abac6aa1f6128\"\u003e\u003ccode\u003efae2ab1\u003c/code\u003e\u003c/a\u003e Fixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f43e1120286d2b7537547603a1534569e8d8f1a6\"\u003e\u003ccode\u003ef43e112\u003c/code\u003e\u003c/a\u003e Adjust changelog for ApplicationCommunicator updates. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f22bea26ff268c26253e827b127be76b61a612cf\"\u003e\u003ccode\u003ef22bea2\u003c/code\u003e\u003c/a\u003e Skip garbage collection test on PyPy (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fc0599e122edcde0f84962b219ea591428124106\"\u003e\u003ccode\u003efc0599e\u003c/code\u003e\u003c/a\u003e Releasing 3.9.0. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b126e0c01144bd980937b658dd6eaf236150fe63\"\u003e\u003ccode\u003eb126e0c\u003c/code\u003e\u003c/a\u003e Removed unneeded typing workaround (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ef1678a65b891ef838525d1f3a658875acb9018a\"\u003e\u003ccode\u003eef1678a\u003c/code\u003e\u003c/a\u003e Migrate work for finished \u003ccode\u003eCurrentThreadExecutor\u003c/code\u003e to previous executor (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/37870f58963c38617a910743ba69311ec8e4e0d0\"\u003e\u003ccode\u003e37870f5\u003c/code\u003e\u003c/a\u003e Fixed reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ec6f666621407674e80d039bf235ba2662193bdb\"\u003e\u003ccode\u003eec6f666\u003c/code\u003e\u003c/a\u003e Add MicroPie framework to \u003ccode\u003eimplementations.rst\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/5eff04dce46b74172a1d6d1c5b02409f0afe33b6\"\u003e\u003ccode\u003e5eff04d\u003c/code\u003e\u003c/a\u003e Lazily bind ApplicationCommunicator to event loop (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astroid` from 3.3.9 to 3.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/releases\"\u003eastroid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/blob/main/ChangeLog\"\u003eastroid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.11?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-07-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.10?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/fbea510b9e7604be0afea5b25ca6b51a73f09870\"\u003e\u003ccode\u003efbea510\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.11, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2777\"\u003e#2777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/bf3977c3793be0e2111220864e02f8040fcaeb7f\"\u003e\u003ccode\u003ebf3977c\u003c/code\u003e\u003c/a\u003e Include subclasses of standard property classes as property decorators (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2735\"\u003e#2735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/18f96261f4736a10fc7b6824c4d0fed922b05c4b\"\u003e\u003ccode\u003e18f9626\u003c/code\u003e\u003c/a\u003e Use custom Github App to authenticate backport job (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2751\"\u003e#2751\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2752\"\u003e#2752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c1d9c73fd724dd1dd7ec64195f93e86be32414c6\"\u003e\u003ccode\u003ec1d9c73\u003c/code\u003e\u003c/a\u003e Improve backport job permissions (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2750\"\u003e#2750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/b1adb1c1b58e1f7a13751bc52c33d124364633be\"\u003e\u003ccode\u003eb1adb1c\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Initial fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2747\"\u003e#2747\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/0aaf2131e8694c0009781b4144685d1c84d1f36a\"\u003e\u003ccode\u003e0aaf213\u003c/code\u003e\u003c/a\u003e [fix] Prevent crash on slice decorator for 'six' decorated function (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2738\"\u003e#2738\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c8bd28a53b919f1c0be4f71f3c6de3d26073d520\"\u003e\u003ccode\u003ec8bd28a\u003c/code\u003e\u003c/a\u003e [fix] Crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/a3623682a5e1e07f4f331b6b0a5f77e257d81b96\"\u003e\u003ccode\u003ea362368\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.10, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/d87efc6185573da387df4e5fbe5a8c3cca185487\"\u003e\u003ccode\u003ed87efc6\u003c/code\u003e\u003c/a\u003e Pick correct file if two files with the same name but with different extensio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/e29d7267a0053766415f7f45ffa839c335776a6b\"\u003e\u003ccode\u003ee29d726\u003c/code\u003e\u003c/a\u003e [setuptools] Upgrade the license handling for latest setuptools\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.1.31 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.01.31...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.1 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.8 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.8...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `crispy-bootstrap5` from 2025.4 to 2025.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/releases\"\u003ecrispy-bootstrap5's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/blob/main/CHANGELOG.md\"\u003ecrispy-bootstrap5's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6 (2025-06-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/c9578e9291e3c77998e7f8ec6c089719685ed678\"\u003e\u003ccode\u003ec9578e9\u003c/code\u003e\u003c/a\u003e 2025.6 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/a6346ecc8c6c7936bfda5d8c290b3cbb332f9009\"\u003e\u003ccode\u003ea6346ec\u003c/code\u003e\u003c/a\u003e Make legend font-size the same as label font-size (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/compare/2025.4...2025.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.3 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/45.0.7/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\nconsidered secure, and is supported only for backwards compatibility.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.3...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dill` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/16eb90b0895fa60c751bc4bdc18dbdf9a6b31a2e\"\u003e\u003ccode\u003e16eb90b\u003c/code\u003e\u003c/a\u003e tag: 0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/cd7a5a8242a7039eb0c13320843dbb170b3b88ab\"\u003e\u003ccode\u003ecd7a5a8\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.5 to 3.1.6 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/0717bd1efe2ddd487762a472cb63253a504a760b\"\u003e\u003ccode\u003e0717bd1\u003c/code\u003e\u003c/a\u003e move travis build of 3.9 to focal (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/599265e0a0cec406e245808105b63987077f53f2\"\u003e\u003ccode\u003e599265e\u003c/code\u003e\u003c/a\u003e fix CodeType support for PyPy3.11 7.3.19+ (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/acc49cfe97e333a8133280b909f09c723cc0fec5\"\u003e\u003ccode\u003eacc49cf\u003c/code\u003e\u003c/a\u003e update docs requirements; CI for pypy3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a3d129f9c8aceb856a7e50277af4b7fef6ab9202\"\u003e\u003ccode\u003ea3d129f\u003c/code\u003e\u003c/a\u003e support pypy-3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/7f678e733d7eca682dd367dd68231451141b27ea\"\u003e\u003ccode\u003e7f678e7\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.5 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/5adb4445d630ba067329246e9966b420ccbfbb4d\"\u003e\u003ccode\u003e5adb444\u003c/code\u003e\u003c/a\u003e updated copyright for 2025 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/696\"\u003e#696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/c8b8c5775e572309a5ea787d9f897facfc9280d5\"\u003e\u003ccode\u003ec8b8c57\u003c/code\u003e\u003c/a\u003e fix typo in requirements (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/e3c85c82c76dfa5abb476949279f5709395f0547\"\u003e\u003ccode\u003ee3c85c8\u003c/code\u003e\u003c/a\u003e Bump starlette from 0.37.2 to 0.40.0 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/uqfoundation/dill/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.10 to 5.2.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3b1107a4955bdd994908efb4c6e1d03c281e69f\"\u003e\u003ccode\u003ea3b1107\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0489f54e8b047374f0b83fe77695976edcf8c118\"\u003e\u003ccode\u003e0489f54\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9c7d4b703759e9903dd92899dd8ac662007baf3\"\u003e\u003ccode\u003ea9c7d4b\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36485\"\u003e#36485\u003c/a\u003e -- Grouped docs checks under a unified make check target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ad6d43cd9ae05d3575f9e7bb1cb488bce5d905d\"\u003e\u003ccode\u003e5ad6d43\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/34140\"\u003e#34140\u003c/a\u003e -- Added dedicated code block formatting section in docs/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/bdc3f9e3508fc144c5e9710f5b672cc41f6e742d\"\u003e\u003ccode\u003ebdc3f9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36530\"\u003e#36530\u003c/a\u003e -- Extended fields.E347 to check for ManyToManyField inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f01ceae477a71a1c244c332e1b53a9499e484874\"\u003e\u003ccode\u003ef01ceae\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36535\"\u003e#36535\u003c/a\u003e -- Ensured compatibility with docutils 0.19 through 0.22.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca58ce3d0d254752caa19e96055f54feadd5582\"\u003e\u003ccode\u003e5ca58ce\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected assertNumQueries() example in docs/topics/testing/tools.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b3bb7230e1225861b5c1f08931f2d82c2b04133a\"\u003e\u003ccode\u003eb3bb723\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/34871\"\u003e#34871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36518\"\u003e#36518\u003c/a\u003e -- Implemented unresolved lookups expression rep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e5ccb69bc3da407ab2b0477c0cc5db27c7207225\"\u003e\u003ccode\u003ee5ccb69\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36198\"\u003e#36198\u003c/a\u003e -- Implemented unresolved transform expression replacement.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5aefd005fc3dd35be6e9e4a24f9c2bc92b69df3b\"\u003e\u003ccode\u003e5aefd00\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.10...5.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.6.0 to 65.11.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.3 to 2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4 (2025-04-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/b3f1d2255be531bba4acb67311a5d3c00dbd9973\"\u003e\u003ccode\u003eb3f1d22\u003c/code\u003e\u003c/a\u003e 2.4 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ac2479e16f48c265897acd2ce2455af6ad9840ef\"\u003e\u003ccode\u003eac2479e\u003c/code\u003e\u003c/a\u003e Update GitHub action versions in workflows. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/bb7030a9a07f327bc725a62341ae0e14526f82e6\"\u003e\u003ccode\u003ebb7030a\u003c/code\u003e\u003c/a\u003e Confirmed Django 5.2 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/a4fb3c7be1129cbd0de7895413cdb926fbb83d80\"\u003e\u003ccode\u003ea4fb3c7\u003c/code\u003e\u003c/a\u003e Pre-commit autoupdate. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1404\"\u003e#1404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7cc89a1a298515b3e934312f8aa1b21617c63a8\"\u003e\u003ccode\u003ee7cc89a\u003c/code\u003e\u003c/a\u003e Added Python 3.13 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1403\"\u003e#1403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.3...2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4598","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4598","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4598/packages"},{"uuid":"2783272997","node_id":"PR_kwDOAxHU6M6l5WAl","number":8919,"state":"open","title":"Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependency update"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-29T00:08:41.000Z","updated_at":"2025-08-29T00:08:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/Harmon758/Harmonbot/pull/8919","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harmon758%2FHarmonbot/issues/8919","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8919/packages"},{"uuid":"2736306028","node_id":"PR_kwDOFc3u6c6jGLds","number":168,"state":"closed","title":"Bump the python-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-08T12:11:37.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-11T17:26:55.000Z","updated_at":"2025-09-08T12:11:37.000Z","time_to_close":2400282,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":11,"packages":[{"name":"django","old_version":"5.1.7","new_version":"5.2.5","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"django-settings-holder","old_version":"0.2.2","new_version":"0.3.0","repository_url":"https://github.com/MrThearMan/django-settings-holder"},{"name":"cryptography","old_version":"44.0.2","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.8.0","new_version":"7.10.3","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"pytest-django","old_version":"4.10.0","new_version":"4.11.1","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"tox","old_version":"4.25.0","new_version":"4.28.4","repository_url":"https://github.com/tox-dev/tox"},{"name":"pymdown-extensions","old_version":"10.14.3","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.7` | `5.2.5` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [django-settings-holder](https://github.com/MrThearMan/django-settings-holder) | `0.2.2` | `0.3.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `45.0.6` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.8.0` | `7.10.3` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.10.0` | `4.11.1` |\n| [tox](https://github.com/tox-dev/tox) | `4.25.0` | `4.28.4` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.14.3` | `10.16.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n\n\nUpdates `django` from 5.1.7 to 5.2.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3b1107a4955bdd994908efb4c6e1d03c281e69f\"\u003e\u003ccode\u003ea3b1107\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0489f54e8b047374f0b83fe77695976edcf8c118\"\u003e\u003ccode\u003e0489f54\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9c7d4b703759e9903dd92899dd8ac662007baf3\"\u003e\u003ccode\u003ea9c7d4b\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36485\"\u003e#36485\u003c/a\u003e -- Grouped docs checks under a unified make check target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ad6d43cd9ae05d3575f9e7bb1cb488bce5d905d\"\u003e\u003ccode\u003e5ad6d43\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/34140\"\u003e#34140\u003c/a\u003e -- Added dedicated code block formatting section in docs/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/bdc3f9e3508fc144c5e9710f5b672cc41f6e742d\"\u003e\u003ccode\u003ebdc3f9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36530\"\u003e#36530\u003c/a\u003e -- Extended fields.E347 to check for ManyToManyField inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f01ceae477a71a1c244c332e1b53a9499e484874\"\u003e\u003ccode\u003ef01ceae\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36535\"\u003e#36535\u003c/a\u003e -- Ensured compatibility with docutils 0.19 through 0.22.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca58ce3d0d254752caa19e96055f54feadd5582\"\u003e\u003ccode\u003e5ca58ce\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected assertNumQueries() example in docs/topics/testing/tools.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b3bb7230e1225861b5c1f08931f2d82c2b04133a\"\u003e\u003ccode\u003eb3bb723\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/34871\"\u003e#34871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36518\"\u003e#36518\u003c/a\u003e -- Implemented unresolved lookups expression rep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e5ccb69bc3da407ab2b0477c0cc5db27c7207225\"\u003e\u003ccode\u003ee5ccb69\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36198\"\u003e#36198\u003c/a\u003e -- Implemented unresolved transform expression replacement.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5aefd005fc3dd35be6e9e4a24f9c2bc92b69df3b\"\u003e\u003ccode\u003e5aefd00\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.7...5.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-settings-holder` from 0.2.2 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/releases\"\u003edjango-settings-holder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChange the format of \u003ccode\u003eREMOVED_SETTINGS\u003c/code\u003e to be able to determine replacing settings\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ehttps://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/982b4f9f1a2d64afa306c1bf07cac4573c778aaa\"\u003e\u003ccode\u003e982b4f9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/92553f9083c6d18490cbb944058644faab4bfc98\"\u003e\u003ccode\u003e92553f9\u003c/code\u003e\u003c/a\u003e Various fixes and improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/fdd6bba4d55cc14b653b240cec6e4f839d032943\"\u003e\u003ccode\u003efdd6bba\u003c/code\u003e\u003c/a\u003e Add to .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/435d3dcbc1f3357048f4c8b2a4fa11706f82a03d\"\u003e\u003ccode\u003e435d3dc\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/01422a0af4c6920a0362ae51dfde30e3b7e046b3\"\u003e\u003ccode\u003e01422a0\u003c/code\u003e\u003c/a\u003e Update CI test runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/871d93974a248fe93338a3a61d981da092ccc40f\"\u003e\u003ccode\u003e871d939\u003c/code\u003e\u003c/a\u003e Install pytest-django in tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/6b922f785ea774f3ea5ba9fc52d318d0fee61274\"\u003e\u003ccode\u003e6b922f7\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDJANGO_SETTINGS_MODULE\u003c/code\u003e to to env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/9f53de6c87426b3547b9464cf952c7c3d7b2d278\"\u003e\u003ccode\u003e9f53de6\u003c/code\u003e\u003c/a\u003e Add better errors from old and unused settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/c25ebf9227edb9cc3ab4522750515487dea4b7a7\"\u003e\u003ccode\u003ec25ebf9\u003c/code\u003e\u003c/a\u003e Update docs style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/0155ec17eabf5263b949ece7b3f2e4e23a41c84f\"\u003e\u003ccode\u003e0155ec1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 44.0.2 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\n  considered secure, and is supported only for backwards compatibility.)\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003cp\u003e45.0.3 - 2025-05-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with long salts (this impacts keys\nencrypted by Bouncy Castle).\u003c/li\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with DES-CBC-MD5. While wildly\ninsecure, this remains prevalent.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-2:\u003c/p\u003e\n\u003cp\u003e45.0.2 - 2025-05-17\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed using ``mypy`` with ``cryptography`` on older versions of Python.\n\u003cp\u003e.. _v45-0-1:\u003c/p\u003e\n\u003cp\u003e45.0.1 - 2025-05-17\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-0:\u003c/p\u003e\n\u003cp\u003e45.0.0 - 2025-05-17 (YANKED)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Support for Python 3.7 is deprecated and will be removed in the next\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/50384959872c84933b6059c3b697139c8fcdcdea\"\u003e\u003ccode\u003e5038495\u003c/code\u003e\u003c/a\u003e backports for 45.0.3 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12979\"\u003e#12979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f81c07535ddf2d26cb1a27e70a9967ab708b8056\"\u003e\u003ccode\u003ef81c075\u003c/code\u003e\u003c/a\u003e Backport mypy fixes for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12930\"\u003e#12930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/8ea28e0bc724e57433f4f062795d91c0a367e9ad\"\u003e\u003ccode\u003e8ea28e0\u003c/code\u003e\u003c/a\u003e bump for 45.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12922\"\u003e#12922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67840977c95a23d0dcfba154e303014026df0d3e\"\u003e\u003ccode\u003e6784097\u003c/code\u003e\u003c/a\u003e bump for 45 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12886\"\u003e#12886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2d9c1c9cbe650f2888c14476a4b30ef85d3fd2bc\"\u003e\u003ccode\u003e2d9c1c9\u003c/code\u003e\u003c/a\u003e bump MSRV to 1.74 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12919\"\u003e#12919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6c18874cc2e76f173b77c67609cfb4d3495964c3\"\u003e\u003ccode\u003e6c18874\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12918\"\u003e#12918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/43fd312aea73e4ad79a54c78848e73bf5a640336\"\u003e\u003ccode\u003e43fd312\u003c/code\u003e\u003c/a\u003e add test vectors for upcoming explicit curve loading (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12913\"\u003e#12913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/44.0.2...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 8.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=true\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.0 (2025-06-02)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/11372\"\u003e#11372\u003c/a\u003e: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12346\"\u003e#12346\u003c/a\u003e: Tests will now fail, instead of raising a warning, if they return any value other than None.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12874\"\u003e#12874\u003c/a\u003e: We dropped support for Python 3.8 following its end of life (2024-10-07).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12960\"\u003e#12960\u003c/a\u003e: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ethe docs \u0026lt;yield tests deprecated\u0026gt;\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10839\"\u003e#10839\u003c/a\u003e: Requesting an asynchronous fixture without a [pytest_fixture_setup]{.title-ref} hook that resolves it will now give a DeprecationWarning. This most commonly happens if a sync test requests an async fixture. This should have no effect on a majority of users with async tests or fixtures using async pytest plugins, but may affect non-standard hook setups or \u003ccode\u003eautouse=True\u003c/code\u003e. For guidance on how to work around this warning see \u003ccode\u003esync-test-async-fixture\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/11538\"\u003e#11538\u003c/a\u003e: Added \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} as an equivalent to \u003ccode\u003epytest.raises\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} for expecting \u003ccode\u003eExceptionGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;exc\u0026quot;}. Also adds \u003ccode\u003epytest.RaisesExc\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which is now the logic behind \u003ccode\u003epytest.raises\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and used as parameter to \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;}. \u003ccode\u003eRaisesGroup\u003c/code\u003e includes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulating \u003ccode\u003eexcept* \u0026lt;except_star\u0026gt;\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;}. See \u003ccode\u003eassert-matching-exception-groups\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} and docstrings for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12081\"\u003e#12081\u003c/a\u003e: Added \u003ccode\u003ecapteesys\u003c/code\u003e{.interpreted-text role=\u0026quot;fixture\u0026quot;} to capture AND pass output to next handler set by \u003ccode\u003e--capture=\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12504\"\u003e#12504\u003c/a\u003e: \u003ccode\u003epytest.mark.xfail\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now accepts \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} for the \u003ccode\u003eraises\u003c/code\u003e parameter when you expect an exception group. You can also pass a \u003ccode\u003epytest.RaisesExc\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} if you e.g. want to make use of the \u003ccode\u003echeck\u003c/code\u003e parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12713\"\u003e#12713\u003c/a\u003e: New [--force-short-summary]{.title-ref} option to force condensed summary output regardless of verbosity level.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8d99211f0ce3927eb7ee579f7b4f969da06dc787\"\u003e\u003ccode\u003e8d99211\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5dc5880715633c97310c0593f0ae356de27fa933\"\u003e\u003ccode\u003e5dc5880\u003c/code\u003e\u003c/a\u003e docs: update pytest.ini addopts example to use separate -p entries (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13529\"\u003e#13529\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d0c7ed0bfae5a5f1f9153cd1e464a421d701e925\"\u003e\u003ccode\u003ed0c7ed0\u003c/code\u003e\u003c/a\u003e Reintroduce PytestReturnNotNoneWarning (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13495\"\u003e#13495\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13527\"\u003e#13527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a1b3a7879589eb437e4fd97c169b228c3ed58c63\"\u003e\u003ccode\u003ea1b3a78\u003c/code\u003e\u003c/a\u003e Fix compatibility with Twisted 25 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13502\"\u003e#13502\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4c161aba8ecaab9940040702369025595d26564c\"\u003e\u003ccode\u003e4c161ab\u003c/code\u003e\u003c/a\u003e pytester: avoid unraisableexception gc collects in inline runs to speed up te...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a86ee09291f913b36fdeec14c42356515b91c979\"\u003e\u003ccode\u003ea86ee09\u003c/code\u003e\u003c/a\u003e Fix typo in parametrize.rst (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13514\"\u003e#13514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13516\"\u003e#13516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1a0581b0227fa07afd1f2c4c6215aec3862cf1ab\"\u003e\u003ccode\u003e1a0581b\u003c/code\u003e\u003c/a\u003e Remove outdated warning about faulthandler_timeout on Windows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13493\"\u003e#13493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4e631a71484c2fa49e3fd9f884546af411a4888d\"\u003e\u003ccode\u003e4e631a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13486\"\u003e#13486\u003c/a\u003e from hosmir/fixtypo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13487\"\u003e#13487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b49745ec529f06edfbbe531b766839763b2be3c2\"\u003e\u003ccode\u003eb49745e\u003c/code\u003e\u003c/a\u003e fix: support TerminalReporter.isatty being called (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13462\"\u003e#13462\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13483\"\u003e#13483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cc5ceed916d0c63696da33c67e035917194a4e87\"\u003e\u003ccode\u003ecc5ceed\u003c/code\u003e\u003c/a\u003e RELEASING: remove pytest mailing list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13472\"\u003e#13472\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13473\"\u003e#13473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.8.0 to 7.10.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some code with NOP bytecodes could report missing branches that are\nactually executed. This is now fixed, closing \u003ccode\u003eissue 1999\u003c/code\u003e_. Python 3.9\nstill shows the problem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1999: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1999\"\u003enedbat/coveragepy#1999\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.1 — 2025-07-27\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/nedbat/coveragepy/commit/0691ce5d08ae2eb6cae51f879ffe609aeb14d221\"\u003e\u003ccode\u003e0691ce5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/34c9aca951d2c89ab0af5343a9a1c5cc7b00aefd\"\u003e\u003ccode\u003e34c9aca\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/fd83f218e21058f43c7544a3cb01ce84714965f7\"\u003e\u003ccode\u003efd83f21\u003c/code\u003e\u003c/a\u003e style: lists for homogenous collections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/d9618002dde634898613f5935092cefbb29035f0\"\u003e\u003ccode\u003ed961800\u003c/code\u003e\u003c/a\u003e docs: remove an unused reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/697d4bb3950b31dc7f5d39d9dcf67fabde9db241\"\u003e\u003ccode\u003e697d4bb\u003c/code\u003e\u003c/a\u003e fix: subprocesses inherit the entire configuration. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003e#2021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b6db3b7e52e4820bd1d3e43b29f700a5f31f3937\"\u003e\u003ccode\u003eb6db3b7\u003c/code\u003e\u003c/a\u003e build: show the total during local metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/cfbceb584b18f87fdc6228fc4a8202d789e030cc\"\u003e\u003ccode\u003ecfbceb5\u003c/code\u003e\u003c/a\u003e docs: reverted \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/264bbd3d2c2ee9eca32248c5874423c0b6ff6287\"\u003e\u003ccode\u003e264bbd3\u003c/code\u003e\u003c/a\u003e refactor: more patch logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3ecdfafc74bd2b007b561e6ac6b080c04e598b06\"\u003e\u003ccode\u003e3ecdfaf\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/41a225698710c9005da822978930be69312d1676\"\u003e\u003ccode\u003e41a2256\u003c/code\u003e\u003c/a\u003e fix: revert \u0026quot;thread safe resume (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.8.0...7.10.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-django` from 4.10.0 to 4.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-django/releases\"\u003epytest-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\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/pytest-dev/pytest-django/blob/main/docs/changelog.rst\"\u003epytest-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a regression in v4.11.0 for Django \u003ccode\u003eTestCase\u003c/code\u003e tests using the \u003ccode\u003edatabases\u003c/code\u003e class variable (\u003ccode\u003e[#1188](https://github.com/pytest-dev/pytest-django/issues/1188) \u0026lt;https://github.com/pytest-dev/pytest-django/issues/1188\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.11.0 (2025-04-01)\u003c/h2\u003e\n\u003cp\u003eCompatibility\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded official support for Django 5.2 (\u003ccode\u003ePR [#1179](https://github.com/pytest-dev/pytest-django/issues/1179) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1179\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDropped testing on MySQL’s MyISAM storage engine (\u003ccode\u003ePR [#1180](https://github.com/pytest-dev/pytest-django/issues/1180) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1180\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStopped setting up and serializing databases on test session setup when not needed (the database is not requested / \u003ccode\u003eserialized_rollback\u003c/code\u003e is not used).\nOn test databases with large amounts of pre-seeded data, this may remove a delay of a few seconds when running \u003ccode\u003epytest --reuse-db\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe determination of which databases to setup is done by static inspection of the test suite.\nUsing pytest's dynamic features to request db access, such as :meth:\u003ccode\u003erequest.getfixturevalue(\u0026quot;db\u0026quot;) \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e, may throw off this analysis.\nIf you start seeing \u003ccode\u003eDatabaseOperationForbidden\u003c/code\u003e or \u0026quot;unable to open database\u0026quot; errors, this is likely the cause.\nTo fix this, decorate at least one test with the :func:\u003ccode\u003edjango_db \u0026lt;pytest.mark.django_db\u0026gt;\u003c/code\u003e marker with appropriate \u003ccode\u003edatabases\u003c/code\u003e and \u003ccode\u003eserialized_rollback\u003c/code\u003e settings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/5ada9c1596ee9e0624801d553995d98d2e3ccce8\"\u003e\u003ccode\u003e5ada9c1\u003c/code\u003e\u003c/a\u003e Release 4.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/cf3f0bb89be0d741e7c4e10469d0559e86753cc7\"\u003e\u003ccode\u003ecf3f0bb\u003c/code\u003e\u003c/a\u003e fixtures: fixup a regression in previous release for TestCase multi-db support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6d5c272519037031f0b68d78dca44727b860d65e\"\u003e\u003ccode\u003e6d5c272\u003c/code\u003e\u003c/a\u003e Release 4.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/8000db04f07822861331d0df8ef52f9c67eafc00\"\u003e\u003ccode\u003e8000db0\u003c/code\u003e\u003c/a\u003e Only setup and serialize databases as needed by tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6f7fc269f871da0134d9155ca856b29582aa46ce\"\u003e\u003ccode\u003e6f7fc26\u003c/code\u003e\u003c/a\u003e Add optional integration of pytest into django's \u003ccode\u003emanage.py test\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3071a666dce1f60299bf89bd9c268ac7e0ee459d\"\u003e\u003ccode\u003e3071a66\u003c/code\u003e\u003c/a\u003e docs/conf.py: format with ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3f44e50ff326c23a44bf5633423d491a251d8eed\"\u003e\u003ccode\u003e3f44e50\u003c/code\u003e\u003c/a\u003e fixtures: avoid unnecessary closure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/b7328696ad7a5bfc308b60c909972a9166fce8a3\"\u003e\u003ccode\u003eb732869\u003c/code\u003e\u003c/a\u003e Remove testing on MyISAM (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/e362f4c6303b203e5449ed023b353ad81f40a753\"\u003e\u003ccode\u003ee362f4c\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-django/compare/v4.10.0...v4.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.25.0 to 4.28.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.28.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3570\"\u003etox-dev/tox#3570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass ssh-agent variables by default by \u003ca href=\"https://github.com/daniilgankov\"\u003e\u003ccode\u003e@​daniilgankov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3572\"\u003etox-dev/tox#3572\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/daniilgankov\"\u003e\u003ccode\u003e@​daniilgankov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3572\"\u003etox-dev/tox#3572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.3...4.28.4\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.3...4.28.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo on cmd_build filter check expression by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3569\"\u003etox-dev/tox#3569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.2...4.28.3\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.2...4.28.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't pass in the filter argument to tar.extractall on old Python versions by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3568\"\u003etox-dev/tox#3568\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.1...4.28.2\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.1...4.28.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue number typo in changelog by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3563\"\u003etox-dev/tox#3563\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/tox-dev/tox/pull/3564\"\u003etox-dev/tox#3564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use tarfile.data_filter when it's available by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3566\"\u003etox-dev/tox#3566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.0...4.28.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.0...4.28.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[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/tox-dev/tox/pull/3548\"\u003etox-dev/tox#3548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Document how to require a plugin by \u003ca href=\"https://github.com/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3552\"\u003etox-dev/tox#3552\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/tox-dev/tox/pull/3554\"\u003etox-dev/tox#3554\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/tox-dev/tox/pull/3558\"\u003etox-dev/tox#3558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e[testenv] constraints\u003c/code\u003e option by \u003ca href=\"https://github.com/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3556\"\u003etox-dev/tox#3556\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/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.28.4 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.28.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Pass ssh-agent variables ``SSH_AGENT_PID`` and ``SSH_AUTH_SOCK`` in ``pass_env`` by default.\n  - by :user:`daniilgankov` (:issue:`3572`)\n\u003ch2\u003ev4.28.3 (2025-07-25)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003ev4.28.2 (2025-07-25)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.28.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't pass in the filter argument to tar.extractall on old Python versions - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3568\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.28.1 (2025-07-22)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.28.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Use `tarfile.data_filter \u0026lt;https://docs.python.org/3/library/tarfile.html#tarfile.data_filter\u0026gt;`_ with ``extractall``\n  only on supported Python versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026amp;gt;= 3.11.4\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026amp;gt;= 3.10.12\u003c/code\u003e and \u003ccode\u003e\u0026amp;lt; 3.11\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026amp;gt;= 3.9.17\u003c/code\u003e and \u003ccode\u003e\u0026amp;lt; 3.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eby :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3565\u003c/code\u003e)\u003c/p\u003e\n\u003ch2\u003ev4.28.0 (2025-07-20)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.28.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003econstraints\u003c/code\u003e to allow specifying constraints files for all dependencies. (:issue:\u003ccode\u003e3550\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow disabling tox plugins via the \u003ccode\u003eTOX_DISABLED_EXTERNAL_PLUGINS\u003c/code\u003e environment variable - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3468\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation - 4.28.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- The ``min_version``/``minversion`` config option is deprecated in favor of the ``requires`` option. (:issue:`3553`)\n\u003ch2\u003ev4.27.0 (2025-06-17)\u003c/h2\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/611b7516d639638cecb1e2117adeeb6567120438\"\u003e\u003ccode\u003e611b751\u003c/code\u003e\u003c/a\u003e release 4.28.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/9f2db71b64bdfc90ce40b33b38df82ac4d1a2abc\"\u003e\u003ccode\u003e9f2db71\u003c/code\u003e\u003c/a\u003e Pass ssh-agent variables by default (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c28c4b1c37b6cb24c66be2667223961cf14feaae\"\u003e\u003ccode\u003ec28c4b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/815ca3149733b5cd1dc84d8ad67d6feaf4736067\"\u003e\u003ccode\u003e815ca31\u003c/code\u003e\u003c/a\u003e release 4.28.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/8a59b928c2dabfcd35e8842109126f7a7d9f9d7b\"\u003e\u003ccode\u003e8a59b92\u003c/code\u003e\u003c/a\u003e Fix type on expression (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3569\"\u003e#3569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/ebfaab66021d9f060ebfc3f1821a53874a905c49\"\u003e\u003ccode\u003eebfaab6\u003c/code\u003e\u003c/a\u003e release 4.28.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/ae930db56a6dbe11ad23ffc86c5d31c9d8ace514\"\u003e\u003ccode\u003eae930db\u003c/code\u003e\u003c/a\u003e Don't pass in hte filter argument to tar.extractall on old Python versions (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c836ab2727992329ffa61330d1aeb524e6d265f0\"\u003e\u003ccode\u003ec836ab2\u003c/code\u003e\u003c/a\u003e release 4.28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c343b26717d314d59bb22252c5d61d7c4e9e03cb\"\u003e\u003ccode\u003ec343b26\u003c/code\u003e\u003c/a\u003e Only use tarfile.data_filter when it's available (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/753dd626564cec7f7b6756d86bc22e2cdfcdcbc3\"\u003e\u003ccode\u003e753dd62\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3564\"\u003e#3564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.25.0...4.28.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.14.3 to 10.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.6.1\u003c/h2\u003e\n\u003ch2\u003e10.16.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Inefficient regular expression pattern for figure caption numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add early support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Snippets: Added \u003ccode\u003emax_retries\u003c/code\u003e and \u003ccode\u003ebackoff_retries\u003c/code\u003e options to configure new retry logic for HTTP 429\nerrors (Too Many Requests client error).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Caption: Prefix templates are now preserved exactly as specified allowing the insertion of HTML tags if\ndesired.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Caption: Fix issue where manual numbers in auto were not respected appropriately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: SuperFences: Add \u003ccode\u003erelaxed_headers\u003c/code\u003e option which can tolerate bad content in the fenced code header. When\nenabled, code blocks with bad content in the header will likely still convert into code blocks, often respecting\nthe specified language.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add type hints to the Blocks interface and a few additional files.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Fix some corner cases of nested blocks with lists.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Tab and Tabbed: Fix a case where tabs could fail if \u003ccode\u003ecombine_header_slug\u003c/code\u003e was enabled and there was no\nheader.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/b50d15a56850ed1408a284bba81cc019c6bd72e8\"\u003e\u003ccode\u003eb50d15a\u003c/code\u003e\u003c/a\u003e Caption pattern should match a literal dot (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/f64422f87c05031a8c8d62b1988bf76e8f65f27f\"\u003e\u003ccode\u003ef64422f\u003c/code\u003e\u003c/a\u003e Update copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9edb92606fc813e983fce3187862a4f28bb15886\"\u003e\u003ccode\u003e9edb926\u003c/code\u003e\u003c/a\u003e Use Trusted Publisher\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d3d4f990463e50b1ba1e20830832285d92990c7\"\u003e\u003ccode\u003e7d3d4f9\u003c/code\u003e\u003c/a\u003e Add early support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/beb841e6f968b81403166d685b083fe2bde84bbc\"\u003e\u003ccode\u003ebeb841e\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/620d7fded457a0b5317019fa461a27f484a0d3d4\"\u003e\u003ccode\u003e620d7fd\u003c/code\u003e\u003c/a\u003e Docs: update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a49f32aa4ac91d97c7c10c9abe7f654b5ec802e5\"\u003e\u003ccode\u003ea49f32a\u003c/code\u003e\u003c/a\u003e Refactor for mypy issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/52a481b5591879f49baffecf4275f351d27a3759\"\u003e\u003ccode\u003e52a481b\u003c/code\u003e\u003c/a\u003e Docs: update JS dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2a1828accdc2371d97610fbbb574dd878e090b54\"\u003e\u003ccode\u003e2a1828a\u003c/code\u003e\u003c/a\u003e Allow raw HTML in caption prefix (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/fbf4bf22da3bc864f24b4ee6a2c05b145fb6c304\"\u003e\u003ccode\u003efbf4bf2\u003c/code\u003e\u003c/a\u003e Fix issue where manual captions in auto were not respected properly (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.14.3...10.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.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/MrThearMan/jwt-email-auth/pull/168","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrThearMan%2Fjwt-email-auth/issues/168","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/168/packages"},{"uuid":"2729277200","node_id":"PR_kwDODVj4p86irXcQ","number":725,"state":"closed","title":"chore(deps): bump the python group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["hibare"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-16T14:50:51.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-08T00:29:17.000Z","updated_at":"2025-08-16T14:50:51.000Z","time_to_close":742894,"merged_at":"2025-08-16T14:50:51.000Z","merged_by":"hibare","closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":10,"packages":[{"name":"django","old_version":"5.2.4","new_version":"5.2.5","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"build","old_version":"1.0.3","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"click","old_version":"8.1.3","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.0","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"pycodestyle","old_version":"2.12.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyproject-hooks","old_version":"1.0.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"tomli","old_version":"2.0.1","new_version":"2.2.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"wheel","old_version":"0.40.0","new_version":"0.45.1","repository_url":"https://github.com/pypa/wheel"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 10 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.2.4` | `5.2.5` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [build](https://github.com/pypa/build) | `1.0.3` | `1.3.0` |\n| [click](https://github.com/pallets/click) | `8.1.3` | `8.2.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.0` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.12.0` | `2.14.0` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.0.0` | `1.2.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.2.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.40.0` | `0.45.1` |\n\n\nUpdates `django` from 5.2.4 to 5.2.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3b1107a4955bdd994908efb4c6e1d03c281e69f\"\u003e\u003ccode\u003ea3b1107\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0489f54e8b047374f0b83fe77695976edcf8c118\"\u003e\u003ccode\u003e0489f54\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9c7d4b703759e9903dd92899dd8ac662007baf3\"\u003e\u003ccode\u003ea9c7d4b\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36485\"\u003e#36485\u003c/a\u003e -- Grouped docs checks under a unified make check target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ad6d43cd9ae05d3575f9e7bb1cb488bce5d905d\"\u003e\u003ccode\u003e5ad6d43\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/34140\"\u003e#34140\u003c/a\u003e -- Added dedicated code block formatting section in docs/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/bdc3f9e3508fc144c5e9710f5b672cc41f6e742d\"\u003e\u003ccode\u003ebdc3f9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36530\"\u003e#36530\u003c/a\u003e -- Extended fields.E347 to check for ManyToManyField inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f01ceae477a71a1c244c332e1b53a9499e484874\"\u003e\u003ccode\u003ef01ceae\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36535\"\u003e#36535\u003c/a\u003e -- Ensured compatibility with docutils 0.19 through 0.22.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca58ce3d0d254752caa19e96055f54feadd5582\"\u003e\u003ccode\u003e5ca58ce\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected assertNumQueries() example in docs/topics/testing/tools.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b3bb7230e1225861b5c1f08931f2d82c2b04133a\"\u003e\u003ccode\u003eb3bb723\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/34871\"\u003e#34871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36518\"\u003e#36518\u003c/a\u003e -- Implemented unresolved lookups expression rep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e5ccb69bc3da407ab2b0477c0cc5db27c7207225\"\u003e\u003ccode\u003ee5ccb69\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36198\"\u003e#36198\u003c/a\u003e -- Implemented unresolved transform expression replacement.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5aefd005fc3dd35be6e9e4a24f9c2bc92b69df3b\"\u003e\u003ccode\u003e5aefd00\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.4...5.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.0.3 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/891\"\u003e#891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/871\"\u003e#871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/824\"\u003e#824\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/918\"\u003e#918\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/870\"\u003e#870\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/915\"\u003e#915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/862\"\u003e#862\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/863\"\u003e#863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/899\"\u003e#899\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/896\"\u003e#896\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.2.post1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eThis release only makes metadata (Python 3.13 classifier), docs, and test suite changes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: add Python 3.13 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/815\"\u003epypa/build#815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mention conda-forge name in README by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/816\"\u003epypa/build#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add a missing ` in README by \u003ca href=\"https://github.com/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix under pyproject-hooks 1.2 by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/824\"\u003epypa/build#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add PyPI attestations by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/821\"\u003epypa/build#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: 1.2.2.post1 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/820\"\u003epypa/build#820\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/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.2.2...1.2.2.post1\"\u003ehttps://github.com/pypa/build/compare/1.2.2...1.2.2.post1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/764\"\u003e#764\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/807\"\u003e#807\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/build/issues/813\"\u003e#813\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0 (2025-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e\n(PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8\n(PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+\n(PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed\n(PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip\n(PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn\n(PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster\n(PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv\n(PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests\n(PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e, :pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata\n(PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development\n(PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs\n(PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e8752f69178d2b2c3563e9c8fa17aa6e11b12c\"\u003e\u003ccode\u003e60e8752\u003c/code\u003e\u003c/a\u003e chore: bump to 1.3.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/807cfba618bc4f7b13e938ffa395fffd82494383\"\u003e\u003ccode\u003e807cfba\u003c/code\u003e\u003c/a\u003e feat: add --config-json (\u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bf54ad04ffe30e7f7847ea0bcbc081b550830950\"\u003e\u003ccode\u003ebf54ad0\u003c/code\u003e\u003c/a\u003e tests: fix issues with ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/53852df8d84d1d17afaa851d4e1cc3754676bb29\"\u003e\u003ccode\u003e53852df\u003c/code\u003e\u003c/a\u003e docs: uv example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/b983371befe0547b312aba36083b859d923d9bfc\"\u003e\u003ccode\u003eb983371\u003c/code\u003e\u003c/a\u003e tests: optional virtualenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/6cd157ad0b614a76a13374032a4f56b65048c0be\"\u003e\u003ccode\u003e6cd157a\u003c/code\u003e\u003c/a\u003e Adopt PEP 639 \u0026quot;license\u0026quot; field (\u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bdaea367438b8e5ed3c26a7497eafc007084fbec\"\u003e\u003ccode\u003ebdaea36\u003c/code\u003e\u003c/a\u003e tests: fixes for errors in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/14d6508679e2ddb4a511b4b41e972cb374e9dadb\"\u003e\u003ccode\u003e14d6508\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/59ac60e78e0dc5164355bd29eb99fb1cb2d7a59c\"\u003e\u003ccode\u003e59ac60e\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/48ebd63cd7049dff737093c462970262ae1ceed0\"\u003e\u003ccode\u003e48ebd63\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.0.3...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.3 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.3...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.4.1 to 7.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior -- by \u003ca href=\"https://github.com/sethmlarson\"\u003e\u003ccode\u003e@​sethmlarson\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2082\"\u003e#2082\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2083\"\u003e#2083\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies -- by \u003ca href=\"https://github.com/macro1\"\u003e\u003ccode\u003e@​macro1\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2087\"\u003e#2087\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/gkreitz\"\u003e\u003ccode\u003e@​gkreitz\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2176\"\u003e#2176\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2178\"\u003e#2178\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\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as constraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2106\"\u003e#2106\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2188\"\u003e#2188\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to POSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemovals and backward incompatible breaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epip-compile\u003c/code\u003e will now relativize the requirements paths which are recorded in its output.\nPaths are made relative to the working directory.\nThis provides more consistent results across \u003ccode\u003epip\u003c/code\u003e versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior\n-- by {user}\u003ccode\u003esethmlarson\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2082\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e\n-- by {user}\u003ccode\u003echrysle\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2083\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies\n-- by {user}\u003ccode\u003emacro1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2087\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e\n-- by {user}\u003ccode\u003egkreitz\u003c/code\u003e and {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2176\u003c/code\u003e, {issue}\u003ccode\u003e2178\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as\nconstraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003echrysle\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2106\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12\n-- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2188\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to\nPOSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003esirosen\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2195\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/debe5a46b700347adcaacbf6ea3c70209f14a91e\"\u003e\u003ccode\u003edebe5a4\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/1c7d9fbe698565a42d272718bfaf2588f71a9224\"\u003e\u003ccode\u003e1c7d9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e from webknjaz/bugfixes/release-env-context-access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/96ed4d2264a4fc0b567aa9e86c5bbbf7f6b3b680\"\u003e\u003ccode\u003e96ed4d2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e from webknjaz/maintenance/release-attestations-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a180dd9cdc9e877313e6a2c24b8919ca2e4f1f8b\"\u003e\u003ccode\u003ea180dd9\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7f9512a26fc831a4f4d3a54e045fa1bd4c818ac1\"\u003e\u003ccode\u003e7f9512a\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/396da33d20c0823242826a0b6194878cebfbf349\"\u003e\u003ccode\u003e396da33\u003c/code\u003e\u003c/a\u003e Run the dist build job in PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7b1c22ca849239c04723e404c138307be9f24b3c\"\u003e\u003ccode\u003e7b1c22c\u003c/code\u003e\u003c/a\u003e Fix accessing repo id in the release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/05daad6ecd4724cce7dd1eeba83489d5b48308cd\"\u003e\u003ccode\u003e05daad6\u003c/code\u003e\u003c/a\u003e Drop release attestations for Jazzband upload\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/b4ddd756b5830decaaf9cfd430704e9218ac6c37\"\u003e\u003ccode\u003eb4ddd75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2203\"\u003e#2203\u003c/a\u003e from sirosen/use-towncrier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a136172f88e95c919b4a0bc4962b23da2b032305\"\u003e\u003ccode\u003ea136172\u003c/code\u003e\u003c/a\u003e Add a run of 'changelog-draft' to QA CI jobs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/7.4.1...v7.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pycodestyle` from 2.12.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt\"\u003epycodestyle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.14.0 (2025-06-20)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix false positive for TypeVar defaults with more than one argument.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1286\"\u003e#1286\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.13.0 (2025-03-29)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1254\"\u003e#1254\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1255\"\u003e#1255\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDrop EOL python 3.8.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1267\"\u003e#1267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eE251: fix false positive for PEP 696 defaults.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1278\"\u003e#1278\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1279\"\u003e#1279\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.12.1 (2024-08-04)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly preserve escaped \u003ccode\u003e{\u003c/code\u003e and \u003ccode\u003e}\u003c/code\u003e in fstrings in logical lines in 3.12+.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1252\"\u003e#1252\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/PyCQA/pycodestyle/commit/814a0d1259444a21ed318e64edaf6a530c2aeeb8\"\u003e\u003ccode\u003e814a0d1\u003c/code\u003e\u003c/a\u003e Release 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/8621e318655267c2a6cfa15bfd3f7cc02a60881f\"\u003e\u003ccode\u003e8621e31\u003c/code\u003e\u003c/a\u003e fix false positive with TypeVar defaults with more than one argument\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/292cdd0a8702b8950c51e11275d7c204267204f1\"\u003e\u003ccode\u003e292cdd0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1285\"\u003e#1285\u003c/a\u003e from PyCQA/sphinx-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/46bc333dc127b73f1af2127bf44dbd74e7bf34cb\"\u003e\u003ccode\u003e46bc333\u003c/code\u003e\u003c/a\u003e add sphinx configuration for rtfd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/a98638490e3c799efeebf0af638940d5a581b3c9\"\u003e\u003ccode\u003ea986384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/c85e7403c056cc71e85e0781c254f87461ccea6a\"\u003e\u003ccode\u003ec85e740\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/ae41b3420360a9f6732b316f5746c56146a37932\"\u003e\u003ccode\u003eae41b34\u003c/code\u003e\u003c/a\u003e updates for python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/34fc7f0fe26a4a38ddeee62e0065900e8ed5347f\"\u003e\u003ccode\u003e34fc7f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1280\"\u003e#1280\u003c/a\u003e from PyCQA/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/7182ac8a56cdff4a05305b85e5e140922aaf56ba\"\u003e\u003ccode\u003e7182ac8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/1845a9293a36e5ade2a1a5146ecb1716add4f1eb\"\u003e\u003ccode\u003e1845a92\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/pycodestyle/compare/2.12.0...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyproject-hooks` from 1.0.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/pyproject-hooks/blob/main/docs/changelog.rst\"\u003epyproject-hooks's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove interoperability with \u003ccode\u003eimportlib.metadata\u003c/code\u003e, fixing a regression\nin setuptools compatibility in 1.1 (PR :pr:\u003ccode\u003e199\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eClean up the \u003ccode\u003e_in_process\u003c/code\u003e directory inside the package from \u003ccode\u003esys.path\u003c/code\u003e\nbefore imporing the backend (PR :pr:\u003ccode\u003e193\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations to the public API.\u003c/li\u003e\n\u003cli\u003eMore careful handling of the \u003ccode\u003ebackend-path\u003c/code\u003e key from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nPrevious versions would load the backend and then check that it was loaded\nfrom the specified path; the new version only loads it from the specified path.\nThe \u003ccode\u003eBackendInvalid\u003c/code\u003e exception is now a synonym for :exc:\u003ccode\u003eBackendUnavailable\u003c/code\u003e,\nand code should move to using the latter name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename package to \u003ccode\u003epyproject_hooks\u003c/code\u003e (from \u003ccode\u003epep517\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRemove deprecated modules (\u003ccode\u003e.build\u003c/code\u003e, \u003ccode\u003e.check\u003c/code\u003e and \u003ccode\u003e.envbuild\u003c/code\u003e).\nUse the \u003ccode\u003ebuild \u0026lt;https://pypa-build.readthedocs.io/en/stable/\u0026gt;\u003c/code\u003e_ project\ninstead for this higher-level functionality of setting up a temporary build\nenvironment.\u003c/li\u003e\n\u003cli\u003eRequire Python 3.7 or above.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etomllib\u003c/code\u003e from the standard library on Python 3.11. \u003ccode\u003epyproject_hooks\u003c/code\u003e\nnow has no external dependencies when installed in Python 3.11.\u003c/li\u003e\n\u003cli\u003eAvoid chaining exceptions when using the fallback implementation for\n:meth:\u003ccode\u003e.prepare_metadata_for_build_wheel\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix propagating error message for :exc:\u003ccode\u003e.BackendInvalid\u003c/code\u003e errors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for end-of-life Pythons. Now requires Python3.6+.\u003c/li\u003e\n\u003cli\u003eRemove support for \u003ccode\u003etoml\u003c/code\u003e package. Now requires \u003ccode\u003etomli\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRely on preferred \u0026quot;files\u0026quot; API on Python 3.9 and later (:issue:\u003ccode\u003e140\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method for pip to check if build_editable hook is supported.\nThis is a private API for now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev0.11.1\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/pypa/pyproject-hooks/commit/4b7c6d113fb89b755d762a88712c8a6873cddd47\"\u003e\u003ccode\u003e4b7c6d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/205\"\u003e#205\u003c/a\u003e from pypa/prepare-1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/102747081953a43bcbb9304e6319de3bf2166bfc\"\u003e\u003ccode\u003e1027470\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dabe52eac18ef677af262657c97a7689b20fa909\"\u003e\u003ccode\u003edabe52e\u003c/code\u003e\u003c/a\u003e Prepare release notes for 1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/3df91751cb87c01b1fd2584a37ca3c186f126a48\"\u003e\u003ccode\u003e3df9175\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/204\"\u003e#204\u003c/a\u003e from pypa/fix/setuptools-71\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9efaa97258b63108750539e440789a5cada90fd8\"\u003e\u003ccode\u003e9efaa97\u003c/code\u003e\u003c/a\u003e Relax test for build requirements from setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/6b57973c3a8ef919dffecac8d15fd608fc51a271\"\u003e\u003ccode\u003e6b57973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/199\"\u003e#199\u003c/a\u003e from abravalheri/issue-192-take2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9988edd23921cdf74bed88f7ae1397b1c440f385\"\u003e\u003ccode\u003e9988edd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/196\"\u003e#196\u003c/a\u003e from pypa/sdist-includes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dba181736a41503f81ed73434143db7537494c76\"\u003e\u003ccode\u003edba1817\u003c/code\u003e\u003c/a\u003e Always use importlib.metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/d68f4d94477f0c20f900b1520ef1a1193e9d4f9d\"\u003e\u003ccode\u003ed68f4d9\u003c/code\u003e\u003c/a\u003e Remove unused dev-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/455b77f9a89f3bfded5925ccc15e17d20c9b99cd\"\u003e\u003ccode\u003e455b77f\u003c/code\u003e\u003c/a\u003e Account for importlib_metadata in Python\u0026lt;3.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/pyproject-hooks/compare/v1.0.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.0.1 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eDon't attempt to compile binary wheels for Python 3.8, 3.9 and 3.10 where cibuildwheel depends on a conflicting Tomli version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003emypyc generated binary wheels for common platforms\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated\n\u003cul\u003e\n\u003cli\u003eInstantiating \u003ccode\u003eTOMLDecodeError\u003c/code\u003e with free-form arguments.\n\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e and \u003ccode\u003epos\u003c/code\u003e arguments should be given.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e, \u003ccode\u003epos\u003c/code\u003e, \u003ccode\u003elineno\u003c/code\u003e and \u003ccode\u003ecolno\u003c/code\u003e attributes to \u003ccode\u003eTOMLDecodeError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved\n\u003cul\u003e\n\u003cli\u003ePython 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eImproved\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003eloads\u003c/code\u003e raise \u003ccode\u003eTypeError\u003c/code\u003e not \u003ccode\u003eAttributeError\u003c/code\u003e on bad input types that do not have the \u003ccode\u003ereplace\u003c/code\u003e attribute.\nImprove error message when \u003ccode\u003ebytes\u003c/code\u003e is received.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eType annotations\n\u003cul\u003e\n\u003cli\u003eType annotate \u003ccode\u003eload\u003c/code\u003e input as \u003ccode\u003etyping.IO[bytes]\u003c/code\u003e (previously \u003ccode\u003etyping.BinaryIO\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/73c3d102eb81fe0d2b87f905df4f740f8878d8da\"\u003e\u003ccode\u003e73c3d10\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.0 → 2.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/7c2368d2cb6c2a49b0fca08765fbba65686efd88\"\u003e\u003ccode\u003e7c2368d\u003c/code\u003e\u003c/a\u003e Don't build wheels for Python versions requiring tomli\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/c48e4e111c8558abcfe141f19fcaada3365f836c\"\u003e\u003ccode\u003ec48e4e1\u003c/code\u003e\u003c/a\u003e Bump version: 2.1.0 → 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/76047414ff1a7c150bb10f0a171da13c5e6af743\"\u003e\u003ccode\u003e7604741\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0724e2ab1858da7f5e05a9bffdb24c33589d951c\"\u003e\u003ccode\u003e0724e2a\u003c/code\u003e\u003c/a\u003e Annotate global constants as Final to speed up compiled code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/149547d2ec5b7d1badf8d0c1ab603735fa9b5a70\"\u003e\u003ccode\u003e149547d\u003c/code\u003e\u003c/a\u003e Create binary wheels with mypyc (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/443a0c1bc5da39b7ed84306912ee1900e6b72e2f\"\u003e\u003ccode\u003e443a0c1\u003c/code\u003e\u003c/a\u003e pre-commit autoupdate and autofix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/48461cfbaf0775c9025720f80d8afa4fa50c0183\"\u003e\u003ccode\u003e48461cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/240\"\u003e#240\u003c/a\u003e from hukkin/version-2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d6e045b1e6b36c56271d9f003794d915d713f962\"\u003e\u003ccode\u003ed6e045b\u003c/code\u003e\u003c/a\u003e Bump version: 2.0.2 → 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d1d6a8571b06b18005af8bf9078c1d37de5353e1\"\u003e\u003ccode\u003ed1d6a85\u003c/code\u003e\u003c/a\u003e Add attributes to TOMLDecodeError. Deprecate free-form \u003ccode\u003e__init__\u003c/code\u003e args (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/238\"\u003e#238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.0.1...2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` from 0.40.0 to 0.45.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.45.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in the file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to \u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with \u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated module and import the \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e itself\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7\u003c/li\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 24.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed removing build tag with \u003ccode\u003ewheel tags --build \u0026quot;\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing updated \u003ccode\u003eWHEEL\u003c/code\u003e fields after a blank line, causing other tools to ignore them\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing \u003ccode\u003eWHEEL\u003c/code\u003e with CRLF line endings or a mix of CRLF and LF\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack --build-number \u0026quot;\u0026quot;\u003c/code\u003e not removing build tag from \u003ccode\u003eWHEEL\u003c/code\u003e (above changes by Benjamin Gilbert)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 23.2\u003c/li\u003e\n\u003cli\u003eFixed ABI tag generation for CPython 3.13a1 on Windows (PR by Sam Gross)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\nthe \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.44.0 (2024-08-04)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e\nitself\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7855525de4093257e7bfb434877265e227356566\"\u003e\u003ccode\u003e7855525\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d343391c20f8f6cc89a61a6f1573522c59d3d7a3\"\u003e\u003ccode\u003ed343391\u003c/code\u003e\u003c/a\u003e Fixed wrong wheel file names in converted pure-Python eggs/wininsts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d78f0e372199f8294556345d867af4d3cf118418\"\u003e\u003ccode\u003ed78f0e3\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/f064c699209e36ec2948537b7cadabf84a110c30\"\u003e\u003ccode\u003ef064c69\u003c/code\u003e\u003c/a\u003e Added license files for vendored \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/68387afcd33cb514a4da811d2fc5de73c8797e48\"\u003e\u003ccode\u003e68387af\u003c/code\u003e\u003c/a\u003e Only configure setuptools logging if bdist_wheel is imported (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/641\"\u003e#641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c81f5c954a8ca7698e6df9de39cf0013295949fa\"\u003e\u003ccode\u003ec81f5c9\u003c/code\u003e\u003c/a\u003e Refactored the \u003ccode\u003ewheel convert\u003c/code\u003e command to not require setuptools (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/640\"\u003e#640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e43464d32feaddddb235ffe21b4bf13c1193465d\"\u003e\u003ccode\u003ee43464d\u003c/code\u003e\u003c/a\u003e Adjusted target Python versions in GitHub CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e9894e71bc62e5808710bc8c2c268de51aef52d4\"\u003e\u003ccode\u003ee9894e7\u003c/code\u003e\u003c/a\u003e Tweaked pytest settings to make the tracebacks easier to read\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/baf6bf89562cb42a0ca71cc1e804600b161952eb\"\u003e\u003ccode\u003ebaf6bf8\u003c/code\u003e\u003c/a\u003e Removed Cirrus CI configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/28c1ba1e2a6d08edc03c73e29293a571888981f9\"\u003e\u003ccode\u003e28c1ba1\u003c/code\u003e\u003c/a\u003e Improved compatibility with future versions of \u003ccode\u003esetuptools\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.40.0...0.45.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 rec...\n\n_Description has been truncated_","html_url":"https://github.com/hibare/Moni/pull/725","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibare%2FMoni/issues/725","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/725/packages"},{"uuid":"3299176906","node_id":"PR_kwDODbCg0c6ihL6t","number":1740,"state":"open","title":"build(deps): bump uritemplate from 4.1.1 to 4.2.0 in /mobile/docs","user":"dependabot[bot]","labels":["dependencies","python","stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-08-07T06:30:13.000Z","updated_at":"2025-09-13T09:15:02.562Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/mobile/docs","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/vikaschoudhary16/envoy/pull/1740","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikaschoudhary16%2Fenvoy/issues/1740","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1740/packages"},{"uuid":"2722348907","node_id":"PR_kwDOBffv3c6iQ79r","number":2013,"state":"closed","title":"build(deps): bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-05T20:43:05.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-05T20:37:14.000Z","updated_at":"2025-08-05T20:43:08.000Z","time_to_close":351,"merged_at":"2025-08-05T20:43:05.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/snarfed/bridgy-fed/pull/2013","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/snarfed%2Fbridgy-fed/issues/2013","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2013/packages"},{"uuid":"2712859670","node_id":"PR_kwDOGLHsfc6hsvQW","number":4476,"state":"open","title":"Bump the ofe-minor-and-patch-updates group across 1 directory with 47 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-01T11:02:52.000Z","updated_at":"2025-08-01T11:02:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":47,"packages":[{"name":"argcomplete","old_version":"3.6.1","new_version":"3.6.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"asgiref","old_version":"3.8.1","new_version":"3.9.1","repository_url":"https://github.com/django/asgiref"},{"name":"astroid","old_version":"3.3.9","new_version":"3.3.11","repository_url":"https://github.com/pylint-dev/astroid"},{"name":"certifi","old_version":"2025.1.31","new_version":"2025.7.14","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.8","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"crispy-bootstrap5","old_version":"2025.4","new_version":"2025.6","repository_url":"https://github.com/django-crispy-forms/crispy-bootstrap5"},{"name":"cryptography","old_version":"45.0.3","new_version":"45.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"dill","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"django","old_version":"5.1.10","new_version":"5.2.4","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.6.0","new_version":"65.10.0","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-crispy-forms","old_version":"2.3","new_version":"2.4","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.25.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.166.0","new_version":"2.177.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.40.3","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-artifact-registry","old_version":"1.15.2","new_version":"1.16.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-secret-manager","old_version":"2.22.1","new_version":"2.24.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-build","old_version":"3.31.0","new_version":"3.31.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-billing","old_version":"1.16.2","new_version":"1.16.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.31.1","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-compute","old_version":"1.29.0","new_version":"1.33.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.5.0","new_version":"1.7.1","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"googleapis-common-protos","old_version":"1.69.2","new_version":"1.70.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.69.0","new_version":"1.74.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.69.0","new_version":"1.74.0"},{"name":"identify","old_version":"2.6.9","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"lazy-object-proxy","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/ionelmc/python-lazy-object-proxy"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.2","repository_url":"https://github.com/Instagram/LibCST"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"oauthlib","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/oauthlib/oauthlib"},{"name":"path","old_version":"17.1.0","new_version":"17.1.1","repository_url":"https://github.com/jaraco/path"},{"name":"platformdirs","old_version":"4.3.7","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pylint","old_version":"3.3.6","new_version":"3.3.7","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pylint-plugin-utils","old_version":"0.8.2","new_version":"0.9.0","repository_url":"https://github.com/PyCQA/pylint-plugin-utils"},{"name":"rpds-py","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"rsa","old_version":"4.9","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.18.14"},{"name":"setuptools-rust","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/PyO3/setuptools-rust"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.14.1","repository_url":"https://github.com/python/typing_extensions"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"uvicorn","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/encode/uvicorn"},{"name":"virtualenv","old_version":"20.30.0","new_version":"20.32.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"zipp","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group with 47 updates in the /community/front-end/ofe directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.1` | `3.6.2` |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.9.1` |\n| [astroid](https://github.com/pylint-dev/astroid) | `3.3.9` | `3.3.11` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.1.31` | `2025.7.14` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.2.1` |\n| [crispy-bootstrap5](https://github.com/django-crispy-forms/crispy-bootstrap5) | `2025.4` | `2025.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.3` | `45.0.5` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.9` | `0.4.0` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [django](https://github.com/django/django) | `5.1.10` | `5.2.4` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.6.0` | `65.10.0` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.3` | `2.4` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.24.2` | `2.25.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.166.0` | `2.177.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.40.3` |\n| [google-cloud-artifact-registry](https://github.com/googleapis/google-cloud-python) | `1.15.2` | `1.16.1` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.22.1` | `2.24.0` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.0` | `3.31.3` |\n| [google-cloud-billing](https://github.com/googleapis/google-cloud-python) | `1.16.2` | `1.16.3` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.29.0` | `2.31.1` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.29.0` | `1.33.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.1` | `3.2.0` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.5.0` | `1.7.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.69.2` | `1.70.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.69.0` | `1.74.0` |\n| [grpcio-status](https://grpc.io) | `1.69.0` | `1.74.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.9` | `2.6.12` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.0` |\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) | `1.10.0` | `1.11.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.2` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [oauthlib](https://github.com/oauthlib/oauthlib) | `3.2.2` | `3.3.1` |\n| [path](https://github.com/jaraco/path) | `17.1.0` | `17.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.7` | `4.3.8` |\n| [pylint](https://github.com/pylint-dev/pylint) | `3.3.6` | `3.3.7` |\n| [pylint-plugin-utils](https://github.com/PyCQA/pylint-plugin-utils) | `0.8.2` | `0.9.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.24.0` | `0.26.0` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.9` | `4.9.1` |\n| ruamel-yaml | `0.18.10` | `0.18.14` |\n| [setuptools-rust](https://github.com/PyO3/setuptools-rust) | `1.11.0` | `1.11.1` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.14.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [uvicorn](https://github.com/encode/uvicorn) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.30.0` | `20.32.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.21.0` | `3.23.0` |\n\n\nUpdates `argcomplete` from 3.6.1 to 3.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\nThis reverts a regression introduced in zsh tab completion configurations utilizing multiple matchers.\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/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.6.2 (2025-04-02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRevert “zsh: skip repeat Python runs in the same completion run” This\nreverts a regression introduced in zsh tab completion configurations\nutilizing multiple matchers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a0143a96b4f26f363cfb5165e93c86c885e0ad12\"\u003e\u003ccode\u003ea0143a9\u003c/code\u003e\u003c/a\u003e v3.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/2e5d43e189a7074c7b663978ba68a3ab0fa21f77\"\u003e\u003ccode\u003e2e5d43e\u003c/code\u003e\u003c/a\u003e Reformat file with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/83d36c56739a40126f8cb70413c64ac1f3264ea7\"\u003e\u003ccode\u003e83d36c5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.1...v3.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.8.1 to 3.9.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.1 (2025-07-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip CPython specific garbage collection test on pypy. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrops support for (end-of-life) Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes an error with conflicting kwargs between AsyncToSync and the wrapped\nfunction. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/471\"\u003e#471\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes Local isolation between asyncio Tasks. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/478\"\u003e#478\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a deadlock in CurrentThreadExecutor with nested async_to_sync →\nsync_to_async → async_to_sync → create_task calls. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe ApplicationCommunicator testing utility will now return the task result\nif it's already completed on send_input and receive_nothing. You may need to\ncatch (e.g.) the asyncio.exceptions.CancelledError if sending messages to\nalready finished consumers in your tests. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fbe9506df140a437921a01ea824dbe51d8c38c24\"\u003e\u003ccode\u003efbe9506\u003c/code\u003e\u003c/a\u003e Releasing 3.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fae2ab10f12858b529b01e6e812abac6aa1f6128\"\u003e\u003ccode\u003efae2ab1\u003c/code\u003e\u003c/a\u003e Fixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f43e1120286d2b7537547603a1534569e8d8f1a6\"\u003e\u003ccode\u003ef43e112\u003c/code\u003e\u003c/a\u003e Adjust changelog for ApplicationCommunicator updates. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f22bea26ff268c26253e827b127be76b61a612cf\"\u003e\u003ccode\u003ef22bea2\u003c/code\u003e\u003c/a\u003e Skip garbage collection test on PyPy (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fc0599e122edcde0f84962b219ea591428124106\"\u003e\u003ccode\u003efc0599e\u003c/code\u003e\u003c/a\u003e Releasing 3.9.0. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b126e0c01144bd980937b658dd6eaf236150fe63\"\u003e\u003ccode\u003eb126e0c\u003c/code\u003e\u003c/a\u003e Removed unneeded typing workaround (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ef1678a65b891ef838525d1f3a658875acb9018a\"\u003e\u003ccode\u003eef1678a\u003c/code\u003e\u003c/a\u003e Migrate work for finished \u003ccode\u003eCurrentThreadExecutor\u003c/code\u003e to previous executor (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/37870f58963c38617a910743ba69311ec8e4e0d0\"\u003e\u003ccode\u003e37870f5\u003c/code\u003e\u003c/a\u003e Fixed reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ec6f666621407674e80d039bf235ba2662193bdb\"\u003e\u003ccode\u003eec6f666\u003c/code\u003e\u003c/a\u003e Add MicroPie framework to \u003ccode\u003eimplementations.rst\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/5eff04dce46b74172a1d6d1c5b02409f0afe33b6\"\u003e\u003ccode\u003e5eff04d\u003c/code\u003e\u003c/a\u003e Lazily bind ApplicationCommunicator to event loop (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astroid` from 3.3.9 to 3.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/releases\"\u003eastroid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/blob/main/ChangeLog\"\u003eastroid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.11?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-07-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.10?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/fbea510b9e7604be0afea5b25ca6b51a73f09870\"\u003e\u003ccode\u003efbea510\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.11, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2777\"\u003e#2777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/bf3977c3793be0e2111220864e02f8040fcaeb7f\"\u003e\u003ccode\u003ebf3977c\u003c/code\u003e\u003c/a\u003e Include subclasses of standard property classes as property decorators (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2735\"\u003e#2735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/18f96261f4736a10fc7b6824c4d0fed922b05c4b\"\u003e\u003ccode\u003e18f9626\u003c/code\u003e\u003c/a\u003e Use custom Github App to authenticate backport job (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2751\"\u003e#2751\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2752\"\u003e#2752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c1d9c73fd724dd1dd7ec64195f93e86be32414c6\"\u003e\u003ccode\u003ec1d9c73\u003c/code\u003e\u003c/a\u003e Improve backport job permissions (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2750\"\u003e#2750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/b1adb1c1b58e1f7a13751bc52c33d124364633be\"\u003e\u003ccode\u003eb1adb1c\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Initial fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2747\"\u003e#2747\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/0aaf2131e8694c0009781b4144685d1c84d1f36a\"\u003e\u003ccode\u003e0aaf213\u003c/code\u003e\u003c/a\u003e [fix] Prevent crash on slice decorator for 'six' decorated function (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2738\"\u003e#2738\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c8bd28a53b919f1c0be4f71f3c6de3d26073d520\"\u003e\u003ccode\u003ec8bd28a\u003c/code\u003e\u003c/a\u003e [fix] Crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/a3623682a5e1e07f4f331b6b0a5f77e257d81b96\"\u003e\u003ccode\u003ea362368\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.10, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/d87efc6185573da387df4e5fbe5a8c3cca185487\"\u003e\u003ccode\u003ed87efc6\u003c/code\u003e\u003c/a\u003e Pick correct file if two files with the same name but with different extensio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/e29d7267a0053766415f7f45ffa839c335776a6b\"\u003e\u003ccode\u003ee29d726\u003c/code\u003e\u003c/a\u003e [setuptools] Upgrade the license handling for latest setuptools\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.1.31 to 2025.7.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.01.31...2025.07.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.1 to 3.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.8 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.8...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `crispy-bootstrap5` from 2025.4 to 2025.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/releases\"\u003ecrispy-bootstrap5's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/blob/main/CHANGELOG.md\"\u003ecrispy-bootstrap5's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6 (2025-06-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/c9578e9291e3c77998e7f8ec6c089719685ed678\"\u003e\u003ccode\u003ec9578e9\u003c/code\u003e\u003c/a\u003e 2025.6 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/a6346ecc8c6c7936bfda5d8c290b3cbb332f9009\"\u003e\u003ccode\u003ea6346ec\u003c/code\u003e\u003c/a\u003e Make legend font-size the same as label font-size (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/compare/2025.4...2025.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.3 to 45.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\nconsidered secure, and is supported only for backwards compatibility.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.3...45.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dill` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/16eb90b0895fa60c751bc4bdc18dbdf9a6b31a2e\"\u003e\u003ccode\u003e16eb90b\u003c/code\u003e\u003c/a\u003e tag: 0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/cd7a5a8242a7039eb0c13320843dbb170b3b88ab\"\u003e\u003ccode\u003ecd7a5a8\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.5 to 3.1.6 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/0717bd1efe2ddd487762a472cb63253a504a760b\"\u003e\u003ccode\u003e0717bd1\u003c/code\u003e\u003c/a\u003e move travis build of 3.9 to focal (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/599265e0a0cec406e245808105b63987077f53f2\"\u003e\u003ccode\u003e599265e\u003c/code\u003e\u003c/a\u003e fix CodeType support for PyPy3.11 7.3.19+ (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/acc49cfe97e333a8133280b909f09c723cc0fec5\"\u003e\u003ccode\u003eacc49cf\u003c/code\u003e\u003c/a\u003e update docs requirements; CI for pypy3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a3d129f9c8aceb856a7e50277af4b7fef6ab9202\"\u003e\u003ccode\u003ea3d129f\u003c/code\u003e\u003c/a\u003e support pypy-3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/7f678e733d7eca682dd367dd68231451141b27ea\"\u003e\u003ccode\u003e7f678e7\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.5 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/5adb4445d630ba067329246e9966b420ccbfbb4d\"\u003e\u003ccode\u003e5adb444\u003c/code\u003e\u003c/a\u003e updated copyright for 2025 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/696\"\u003e#696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/c8b8c5775e572309a5ea787d9f897facfc9280d5\"\u003e\u003ccode\u003ec8b8c57\u003c/code\u003e\u003c/a\u003e fix typo in requirements (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/e3c85c82c76dfa5abb476949279f5709395f0547\"\u003e\u003ccode\u003ee3c85c8\u003c/code\u003e\u003c/a\u003e Bump starlette from 0.37.2 to 0.40.0 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/uqfoundation/dill/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.10 to 5.2.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c941d0deec0ea08a30670be0fac879f2372f071b\"\u003e\u003ccode\u003ec941d0d\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.4 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47a618d45c6e40dd59f4cdd46fd5fc7d11626f6d\"\u003e\u003ccode\u003e47a618d\u003c/code\u003e\u003c/a\u003e Fixed AttributeError for enterContext() on Python \u0026lt; 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a150160c9fc6ba6220f1e63863b03e7f7978b747\"\u003e\u003ccode\u003ea150160\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36464\"\u003e#36464\u003c/a\u003e -- Fixed \u0026quot;__in\u0026quot; tuple lookup on backends lacking native ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/db5da3c91c3122300680c4e7200a463273a5351e\"\u003e\u003ccode\u003edb5da3c\u003c/code\u003e\u003c/a\u003e [5.2.x] Clarified that only latest dependency versions are valid for security...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/359af3779a66281361aff50629c25e81fcfec048\"\u003e\u003ccode\u003e359af37\u003c/code\u003e\u003c/a\u003e [5.2.x] Added guidance on AI-assisted security reports to docs/internals/secu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1d89691c7481fbcef6a7bc396e41a651372c1cf3\"\u003e\u003ccode\u003e1d89691\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36453\"\u003e#36453\u003c/a\u003e -- Made When.condition resolve with for_save=False.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4de4edf2c05cc80c514c989db480f2fe23ad5ee2\"\u003e\u003ccode\u003e4de4edf\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36447\"\u003e#36447\u003c/a\u003e -- Selected preferred media type based on quality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f5cc6a888b60e0f79415cdd206cedbcc441eed82\"\u003e\u003ccode\u003ef5cc6a8\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected jsonfield fieldlookup references.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/538616136be0f9c29f9122984a29e2c0a316958d\"\u003e\u003ccode\u003e5386161\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36463\"\u003e#36463\u003c/a\u003e -- Fixed grammar in docs/intro/contributing.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e3b2370795d8373c62b799b7c9fa3fef1c0a2bb1\"\u003e\u003ccode\u003ee3b2370\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36454\"\u003e#36454\u003c/a\u003e -- Fixed typo in docs/intro/tutorial08.txt.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.10...5.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.6.0 to 65.10.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.3 to 2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4 (2025-04-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/b3f1d2255be531bba4acb67311a5d3c00dbd9973\"\u003e\u003ccode\u003eb3f1d22\u003c/code\u003e\u003c/a\u003e 2.4 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ac2479e16f48c265897acd2ce2455af6ad9840ef\"\u003e\u003ccode\u003eac2479e\u003c/code\u003e\u003c/a\u003e Update GitHub action versions in workflows. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/bb7030a9a07f327bc725a62341ae0e14526f82e6\"\u003e\u003ccode\u003ebb7030a\u003c/code\u003e\u003c/a\u003e Confirmed Django 5.2 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/a4fb3c7be1129cbd0de7895413cdb926fbb83d80\"\u003e\u003ccode\u003ea4fb3c7\u003c/code\u003e\u003c/a\u003e Pre-commit autoupdate. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1404\"\u003e#1404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7cc89a1a298515b3e934312f8aa1b21617c63a8\"\u003e\u003ccode\u003ee7cc89a\u003c/code\u003e\u003c/a\u003e Added Python 3.13 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1403\"\u003e#1403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.3...2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.24.2 to 2.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.25.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.0...v2.25.1\"\u003e2.25.1\u003c/a\u003e (2025-06-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optional Callback (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e3206c01\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.1rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.0...v2.25.1rc0\"\u003e2.25.1rc0\u003c/a\u003e (2025-06-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optional Callback (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e3206c01\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2...v2.25.0\"\u003e2.25.0\u003c/a\u003e (2025-05-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e118bd96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve issue where pre-release versions of dependencies are installed (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/808\"\u003e#808\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e1ca7973\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.0rc1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e118bd96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve issue where pre-release versions of dependencies are installed (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/808\"\u003e#808\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e1ca7973\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2....2.25.0rc0\"\u003e2.25.0rc0\u003c/a\u003e (2025-04-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.0...v2.25.1\"\u003e2.25.1\u003c/a\u003e (2025-06-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optional Callback (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e3206c01\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2...v2.25.0\"\u003e2.25.0\u003c/a\u003e (2025-05-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e118bd96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve issue where pre-release versions of dependencies are installed (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/808\"\u003e#808\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e1ca7973\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/2c983853e930d1ad4a3ece6b6b55a6dc72206a17\"\u003e\u003ccode\u003e2c98385\u003c/code\u003e\u003c/a\u003e chore(main): release 2.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/825\"\u003e#825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e\u003ccode\u003e3206c01\u003c/code\u003e\u003c/a\u003e fix: Allow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/225bf75020ed3bda5f68b2dbd99a91499dd4acc9\"\u003e\u003ccode\u003e225bf75\u003c/code\u003e\u003c/a\u003e chore(main): release 2.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e\u003ccode\u003e118bd96\u003c/code\u003e\u003c/a\u003e feat: Add protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/66d84a3a9ef0ab0c2124a1bf12cc3c45c2393e74\"\u003e\u003ccode\u003e66d84a3\u003c/code\u003e\u003c/a\u003e test: fix BackgroundConsumer error log (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/814\"\u003e#814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/8da1fa9b160b7c9c159fecc698eede498df91f78\"\u003e\u003ccode\u003e8da1fa9\u003c/code\u003e\u003c/a\u003e chore(python): remove .gitignore from templates (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/815\"\u003e#815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e\u003ccode\u003e1ca7973\u003c/code\u003e\u003c/a\u003e fix: resolve issue where pre-release versions of dependencies are installed (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e\u003ccode\u003e70697a3\u003c/code\u003e\u003c/a\u003e feat: support dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2...v2.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.166.0 to 2.177.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.177.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.176.0...v2.177.0\"\u003e2.177.0\u003c/a\u003e (2025-07-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/90d92b4dedbe4d3c562e81095832f6620af50320\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/90d92b4dedbe4d3c562e81095832f6620af50320\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadsenseplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/70cde9e2f6f37e4f894d61ec7560ec006c90d275\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/70cde9e2f6f37e4f894d61ec7560ec006c90d275\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fef1ed967fb47272f82a7309454e477959f6272e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fef1ed967fb47272f82a7309454e477959f6272e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1609c8ffe2d28a36f3f128d823d7d0e499794843\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1609c8ffe2d28a36f3f128d823d7d0e499794843\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f4e40100db38312ab6213c8af955d25b94ed8c87\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f4e40100db38312ab6213c8af955d25b94ed8c87\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapphub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d192cdf02d0e2468454bf20048c6595313b2a17f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d192cdf02d0e2468454bf20048c6595313b2a17f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2d03602be0079c3e3aab99982f2a3f570399c567\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2d03602be0079c3e3aab99982f2a3f570399c567\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebeyondcorp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/992f2f231e390b30f5a42b954f2d615595385d8d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/992f2f231e390b30f5a42b954f2d615595385d8d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2bf379026a8e633e53221accbf12b51354b763b5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2bf379026a8e633e53221accbf12b51354b763b5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echromemanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6a2c4a5ea84185eafc96baecf93f8d05ef662bb0\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6a2c4a5ea84185eafc96baecf93f8d05ef662bb0\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecivicinfo:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/38e107ad9417f213b23542c7cddeeff3aef23416\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/38e107ad9417f213b23542c7cddeeff3aef23416\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudasset:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0d243636fd6ccf64038513819abd5e6709f4edc7\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0d243636fd6ccf64038513819abd5e6709f4edc7\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbilling:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/68858fd5140496a62a29ba6ac24ca86b8d5e0812\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/68858fd5140496a62a29ba6ac24ca86b8d5e0812\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0670bbe7c2f2047aea20bb902ac8d971dd4761be\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0670bbe7c2f2047aea20bb902ac8d971dd4761be\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0a77325ff1334cbd9bdc633401995c82dcdfa4e6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0a77325ff1334cbd9bdc633401995c82dcdfa4e6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0a4db90998f12781fe6cf1baae2b9b1d5883ee6f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0a4db90998f12781fe6cf1baae2b9b1d5883ee6f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenteraiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/39f0f5a371ec5ea99d530855004af028f8ac9819\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/39f0f5a371ec5ea99d530855004af028f8ac9819\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6cd0f3b819b900a4893a460041e31915452ec4ad\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6cd0f3b819b900a4893a460041e31915452ec4ad\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4476","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4476","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4476/packages"},{"uuid":"2711622847","node_id":"PR_kwDODVj4p86hoBS_","number":723,"state":"closed","title":"chore(deps): bump the python group in /backend with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["hibare"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-08-08T00:28:51.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-01T01:03:01.000Z","updated_at":"2025-08-08T00:28:51.000Z","time_to_close":602750,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":8,"packages":[{"name":"build","old_version":"1.0.3","new_version":"1.2.2.post1","repository_url":"https://github.com/pypa/build"},{"name":"click","old_version":"8.1.3","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.0","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"pycodestyle","old_version":"2.12.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyproject-hooks","old_version":"1.0.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"tomli","old_version":"2.0.1","new_version":"2.2.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"wheel","old_version":"0.40.0","new_version":"0.45.1","repository_url":"https://github.com/pypa/wheel"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the python group in /backend with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [build](https://github.com/pypa/build) | `1.0.3` | `1.2.2.post1` |\n| [click](https://github.com/pallets/click) | `8.1.3` | `8.2.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.0` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.12.0` | `2.14.0` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.0.0` | `1.2.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.2.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.40.0` | `0.45.1` |\n\nUpdates `build` from 1.0.3 to 1.2.2.post1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2.post1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eThis release only makes metadata (Python 3.13 classifier), docs, and test suite changes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: add Python 3.13 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/815\"\u003epypa/build#815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mention conda-forge name in README by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/816\"\u003epypa/build#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add a missing ` in README by \u003ca href=\"https://github.com/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix under pyproject-hooks 1.2 by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/824\"\u003epypa/build#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add PyPI attestations by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/821\"\u003epypa/build#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: 1.2.2.post1 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/820\"\u003epypa/build#820\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/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.2.2...1.2.2.post1\"\u003ehttps://github.com/pypa/build/compare/1.2.2...1.2.2.post1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/764\"\u003e#764\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/807\"\u003e#807\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/build/issues/813\"\u003e#813\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/carlwgeorge\"\u003e\u003ccode\u003e@​carlwgeorge\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/808\"\u003epypa/build#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/804\"\u003epypa/build#804\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.2.1...1.2.2\"\u003ehttps://github.com/pypa/build/compare/1.2.1...1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e+++++++++\nChangelog\n+++++++++\u003c/p\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.0 (2024-03-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--installer\u003c/code\u003e option, supporting \u003ccode\u003epip\u003c/code\u003e and \u003ccode\u003euv\u003c/code\u003e. Added \u003ccode\u003euv\u003c/code\u003e\nextra.\n(PR :pr:\u003ccode\u003e751\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove console output and provide \u003ccode\u003e-v\u003c/code\u003e for dependency installation\n(PR :pr:\u003ccode\u003e749\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid compiling unused bytecode when using \u003ccode\u003epip\u003c/code\u003e\n(PR :pr:\u003ccode\u003e752\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.7\n(PR :pr:\u003ccode\u003e743\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.1 (2024-02-29)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed invoking outer pip from user site packages\n(PR :pr:\u003ccode\u003e746\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e745\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrected the minimum pip version required to use an outer pip\n(PR :pr:\u003ccode\u003e746\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e745\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.1.0 (2024-02-29)\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/pypa/build/commit/2f667024a90718da24c5bdfdb264944436adf82e\"\u003e\u003ccode\u003e2f66702\u003c/code\u003e\u003c/a\u003e chore: 1.2.2.post1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0580c6d125fd5479dae3dde36923bfd9b5220a37\"\u003e\u003ccode\u003e0580c6d\u003c/code\u003e\u003c/a\u003e ci: add PyPI attestations (\u003ca href=\"https://redirect.github.com/pypa/build/issues/821\"\u003e#821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/e0e911cc895ca22559be2b80b04be27e33220b87\"\u003e\u003ccode\u003ee0e911c\u003c/code\u003e\u003c/a\u003e tests: fix  under pyproject-hooks 1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a73ecbdf16d8a8abb44cbbe95e9ab5f8f2a7c9b9\"\u003e\u003ccode\u003ea73ecbd\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/56b350439e54d164aed89f251dc39eb7536c0b71\"\u003e\u003ccode\u003e56b3504\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/481ca546a5c9f50f255d245fb75d841f2e2e0d4b\"\u003e\u003ccode\u003e481ca54\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/818\"\u003e#818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/025836ae620e22d017396f7712237b8423b1f5c1\"\u003e\u003ccode\u003e025836a\u003c/code\u003e\u003c/a\u003e docs: add a missing ` in README (\u003ca href=\"https://redirect.github.com/pypa/build/issues/817\"\u003e#817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ae373408f0d4541e9ec8ce711b640ad2faddce4e\"\u003e\u003ccode\u003eae37340\u003c/code\u003e\u003c/a\u003e docs: mention conda-forge name in README (\u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f81aac058003f6df7414b19e45c848c8b7ed7c75\"\u003e\u003ccode\u003ef81aac0\u003c/code\u003e\u003c/a\u003e ci: add Python 3.13 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/815\"\u003e#815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/3b0b5d07077473f5da3f038cf7b74cd2b65d2a98\"\u003e\u003ccode\u003e3b0b5d0\u003c/code\u003e\u003c/a\u003e docs: changelog for 1.2.2 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.0.3...1.2.2.post1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.3 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.3...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.4.1 to 7.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior -- by \u003ca href=\"https://github.com/sethmlarson\"\u003e\u003ccode\u003e@​sethmlarson\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2082\"\u003e#2082\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2083\"\u003e#2083\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies -- by \u003ca href=\"https://github.com/macro1\"\u003e\u003ccode\u003e@​macro1\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2087\"\u003e#2087\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/gkreitz\"\u003e\u003ccode\u003e@​gkreitz\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2176\"\u003e#2176\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2178\"\u003e#2178\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\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as constraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2106\"\u003e#2106\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2188\"\u003e#2188\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to POSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemovals and backward incompatible breaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epip-compile\u003c/code\u003e will now relativize the requirements paths which are recorded in its output.\nPaths are made relative to the working directory.\nThis provides more consistent results across \u003ccode\u003epip\u003c/code\u003e versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior\n-- by {user}\u003ccode\u003esethmlarson\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2082\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e\n-- by {user}\u003ccode\u003echrysle\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2083\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies\n-- by {user}\u003ccode\u003emacro1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2087\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e\n-- by {user}\u003ccode\u003egkreitz\u003c/code\u003e and {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2176\u003c/code\u003e, {issue}\u003ccode\u003e2178\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as\nconstraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003echrysle\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2106\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12\n-- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2188\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to\nPOSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003esirosen\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2195\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/debe5a46b700347adcaacbf6ea3c70209f14a91e\"\u003e\u003ccode\u003edebe5a4\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/1c7d9fbe698565a42d272718bfaf2588f71a9224\"\u003e\u003ccode\u003e1c7d9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e from webknjaz/bugfixes/release-env-context-access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/96ed4d2264a4fc0b567aa9e86c5bbbf7f6b3b680\"\u003e\u003ccode\u003e96ed4d2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e from webknjaz/maintenance/release-attestations-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a180dd9cdc9e877313e6a2c24b8919ca2e4f1f8b\"\u003e\u003ccode\u003ea180dd9\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7f9512a26fc831a4f4d3a54e045fa1bd4c818ac1\"\u003e\u003ccode\u003e7f9512a\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/396da33d20c0823242826a0b6194878cebfbf349\"\u003e\u003ccode\u003e396da33\u003c/code\u003e\u003c/a\u003e Run the dist build job in PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7b1c22ca849239c04723e404c138307be9f24b3c\"\u003e\u003ccode\u003e7b1c22c\u003c/code\u003e\u003c/a\u003e Fix accessing repo id in the release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/05daad6ecd4724cce7dd1eeba83489d5b48308cd\"\u003e\u003ccode\u003e05daad6\u003c/code\u003e\u003c/a\u003e Drop release attestations for Jazzband upload\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/b4ddd756b5830decaaf9cfd430704e9218ac6c37\"\u003e\u003ccode\u003eb4ddd75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2203\"\u003e#2203\u003c/a\u003e from sirosen/use-towncrier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a136172f88e95c919b4a0bc4962b23da2b032305\"\u003e\u003ccode\u003ea136172\u003c/code\u003e\u003c/a\u003e Add a run of 'changelog-draft' to QA CI jobs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/7.4.1...v7.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pycodestyle` from 2.12.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt\"\u003epycodestyle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.14.0 (2025-06-20)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix false positive for TypeVar defaults with more than one argument.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1286\"\u003e#1286\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.13.0 (2025-03-29)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1254\"\u003e#1254\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1255\"\u003e#1255\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDrop EOL python 3.8.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1267\"\u003e#1267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eE251: fix false positive for PEP 696 defaults.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1278\"\u003e#1278\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1279\"\u003e#1279\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.12.1 (2024-08-04)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly preserve escaped \u003ccode\u003e{\u003c/code\u003e and \u003ccode\u003e}\u003c/code\u003e in fstrings in logical lines in 3.12+.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1252\"\u003e#1252\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/PyCQA/pycodestyle/commit/814a0d1259444a21ed318e64edaf6a530c2aeeb8\"\u003e\u003ccode\u003e814a0d1\u003c/code\u003e\u003c/a\u003e Release 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/8621e318655267c2a6cfa15bfd3f7cc02a60881f\"\u003e\u003ccode\u003e8621e31\u003c/code\u003e\u003c/a\u003e fix false positive with TypeVar defaults with more than one argument\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/292cdd0a8702b8950c51e11275d7c204267204f1\"\u003e\u003ccode\u003e292cdd0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1285\"\u003e#1285\u003c/a\u003e from PyCQA/sphinx-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/46bc333dc127b73f1af2127bf44dbd74e7bf34cb\"\u003e\u003ccode\u003e46bc333\u003c/code\u003e\u003c/a\u003e add sphinx configuration for rtfd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/a98638490e3c799efeebf0af638940d5a581b3c9\"\u003e\u003ccode\u003ea986384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/c85e7403c056cc71e85e0781c254f87461ccea6a\"\u003e\u003ccode\u003ec85e740\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/ae41b3420360a9f6732b316f5746c56146a37932\"\u003e\u003ccode\u003eae41b34\u003c/code\u003e\u003c/a\u003e updates for python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/34fc7f0fe26a4a38ddeee62e0065900e8ed5347f\"\u003e\u003ccode\u003e34fc7f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1280\"\u003e#1280\u003c/a\u003e from PyCQA/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/7182ac8a56cdff4a05305b85e5e140922aaf56ba\"\u003e\u003ccode\u003e7182ac8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/1845a9293a36e5ade2a1a5146ecb1716add4f1eb\"\u003e\u003ccode\u003e1845a92\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/pycodestyle/compare/2.12.0...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyproject-hooks` from 1.0.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/pyproject-hooks/blob/main/docs/changelog.rst\"\u003epyproject-hooks's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove interoperability with \u003ccode\u003eimportlib.metadata\u003c/code\u003e, fixing a regression\nin setuptools compatibility in 1.1 (PR :pr:\u003ccode\u003e199\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eClean up the \u003ccode\u003e_in_process\u003c/code\u003e directory inside the package from \u003ccode\u003esys.path\u003c/code\u003e\nbefore imporing the backend (PR :pr:\u003ccode\u003e193\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations to the public API.\u003c/li\u003e\n\u003cli\u003eMore careful handling of the \u003ccode\u003ebackend-path\u003c/code\u003e key from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nPrevious versions would load the backend and then check that it was loaded\nfrom the specified path; the new version only loads it from the specified path.\nThe \u003ccode\u003eBackendInvalid\u003c/code\u003e exception is now a synonym for :exc:\u003ccode\u003eBackendUnavailable\u003c/code\u003e,\nand code should move to using the latter name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename package to \u003ccode\u003epyproject_hooks\u003c/code\u003e (from \u003ccode\u003epep517\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRemove deprecated modules (\u003ccode\u003e.build\u003c/code\u003e, \u003ccode\u003e.check\u003c/code\u003e and \u003ccode\u003e.envbuild\u003c/code\u003e).\nUse the \u003ccode\u003ebuild \u0026lt;https://pypa-build.readthedocs.io/en/stable/\u0026gt;\u003c/code\u003e_ project\ninstead for this higher-level functionality of setting up a temporary build\nenvironment.\u003c/li\u003e\n\u003cli\u003eRequire Python 3.7 or above.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etomllib\u003c/code\u003e from the standard library on Python 3.11. \u003ccode\u003epyproject_hooks\u003c/code\u003e\nnow has no external dependencies when installed in Python 3.11.\u003c/li\u003e\n\u003cli\u003eAvoid chaining exceptions when using the fallback implementation for\n:meth:\u003ccode\u003e.prepare_metadata_for_build_wheel\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix propagating error message for :exc:\u003ccode\u003e.BackendInvalid\u003c/code\u003e errors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for end-of-life Pythons. Now requires Python3.6+.\u003c/li\u003e\n\u003cli\u003eRemove support for \u003ccode\u003etoml\u003c/code\u003e package. Now requires \u003ccode\u003etomli\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRely on preferred \u0026quot;files\u0026quot; API on Python 3.9 and later (:issue:\u003ccode\u003e140\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method for pip to check if build_editable hook is supported.\nThis is a private API for now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev0.11.1\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/pypa/pyproject-hooks/commit/4b7c6d113fb89b755d762a88712c8a6873cddd47\"\u003e\u003ccode\u003e4b7c6d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/205\"\u003e#205\u003c/a\u003e from pypa/prepare-1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/102747081953a43bcbb9304e6319de3bf2166bfc\"\u003e\u003ccode\u003e1027470\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dabe52eac18ef677af262657c97a7689b20fa909\"\u003e\u003ccode\u003edabe52e\u003c/code\u003e\u003c/a\u003e Prepare release notes for 1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/3df91751cb87c01b1fd2584a37ca3c186f126a48\"\u003e\u003ccode\u003e3df9175\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/204\"\u003e#204\u003c/a\u003e from pypa/fix/setuptools-71\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9efaa97258b63108750539e440789a5cada90fd8\"\u003e\u003ccode\u003e9efaa97\u003c/code\u003e\u003c/a\u003e Relax test for build requirements from setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/6b57973c3a8ef919dffecac8d15fd608fc51a271\"\u003e\u003ccode\u003e6b57973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/199\"\u003e#199\u003c/a\u003e from abravalheri/issue-192-take2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9988edd23921cdf74bed88f7ae1397b1c440f385\"\u003e\u003ccode\u003e9988edd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/196\"\u003e#196\u003c/a\u003e from pypa/sdist-includes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dba181736a41503f81ed73434143db7537494c76\"\u003e\u003ccode\u003edba1817\u003c/code\u003e\u003c/a\u003e Always use importlib.metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/d68f4d94477f0c20f900b1520ef1a1193e9d4f9d\"\u003e\u003ccode\u003ed68f4d9\u003c/code\u003e\u003c/a\u003e Remove unused dev-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/455b77f9a89f3bfded5925ccc15e17d20c9b99cd\"\u003e\u003ccode\u003e455b77f\u003c/code\u003e\u003c/a\u003e Account for importlib_metadata in Python\u0026lt;3.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/pyproject-hooks/compare/v1.0.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.0.1 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eDon't attempt to compile binary wheels for Python 3.8, 3.9 and 3.10 where cibuildwheel depends on a conflicting Tomli version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003emypyc generated binary wheels for common platforms\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated\n\u003cul\u003e\n\u003cli\u003eInstantiating \u003ccode\u003eTOMLDecodeError\u003c/code\u003e with free-form arguments.\n\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e and \u003ccode\u003epos\u003c/code\u003e arguments should be given.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e, \u003ccode\u003epos\u003c/code\u003e, \u003ccode\u003elineno\u003c/code\u003e and \u003ccode\u003ecolno\u003c/code\u003e attributes to \u003ccode\u003eTOMLDecodeError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved\n\u003cul\u003e\n\u003cli\u003ePython 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eImproved\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003eloads\u003c/code\u003e raise \u003ccode\u003eTypeError\u003c/code\u003e not \u003ccode\u003eAttributeError\u003c/code\u003e on bad input types that do not have the \u003ccode\u003ereplace\u003c/code\u003e attribute.\nImprove error message when \u003ccode\u003ebytes\u003c/code\u003e is received.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eType annotations\n\u003cul\u003e\n\u003cli\u003eType annotate \u003ccode\u003eload\u003c/code\u003e input as \u003ccode\u003etyping.IO[bytes]\u003c/code\u003e (previously \u003ccode\u003etyping.BinaryIO\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/73c3d102eb81fe0d2b87f905df4f740f8878d8da\"\u003e\u003ccode\u003e73c3d10\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.0 → 2.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/7c2368d2cb6c2a49b0fca08765fbba65686efd88\"\u003e\u003ccode\u003e7c2368d\u003c/code\u003e\u003c/a\u003e Don't build wheels for Python versions requiring tomli\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/c48e4e111c8558abcfe141f19fcaada3365f836c\"\u003e\u003ccode\u003ec48e4e1\u003c/code\u003e\u003c/a\u003e Bump version: 2.1.0 → 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/76047414ff1a7c150bb10f0a171da13c5e6af743\"\u003e\u003ccode\u003e7604741\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0724e2ab1858da7f5e05a9bffdb24c33589d951c\"\u003e\u003ccode\u003e0724e2a\u003c/code\u003e\u003c/a\u003e Annotate global constants as Final to speed up compiled code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/149547d2ec5b7d1badf8d0c1ab603735fa9b5a70\"\u003e\u003ccode\u003e149547d\u003c/code\u003e\u003c/a\u003e Create binary wheels with mypyc (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/443a0c1bc5da39b7ed84306912ee1900e6b72e2f\"\u003e\u003ccode\u003e443a0c1\u003c/code\u003e\u003c/a\u003e pre-commit autoupdate and autofix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/48461cfbaf0775c9025720f80d8afa4fa50c0183\"\u003e\u003ccode\u003e48461cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/240\"\u003e#240\u003c/a\u003e from hukkin/version-2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d6e045b1e6b36c56271d9f003794d915d713f962\"\u003e\u003ccode\u003ed6e045b\u003c/code\u003e\u003c/a\u003e Bump version: 2.0.2 → 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d1d6a8571b06b18005af8bf9078c1d37de5353e1\"\u003e\u003ccode\u003ed1d6a85\u003c/code\u003e\u003c/a\u003e Add attributes to TOMLDecodeError. Deprecate free-form \u003ccode\u003e__init__\u003c/code\u003e args (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/238\"\u003e#238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.0.1...2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` from 0.40.0 to 0.45.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.45.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in the file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to \u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with \u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated module and import the \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e itself\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7\u003c/li\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 24.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed removing build tag with \u003ccode\u003ewheel tags --build \u0026quot;\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing updated \u003ccode\u003eWHEEL\u003c/code\u003e fields after a blank line, causing other tools to ignore them\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing \u003ccode\u003eWHEEL\u003c/code\u003e with CRLF line endings or a mix of CRLF and LF\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack --build-number \u0026quot;\u0026quot;\u003c/code\u003e not removing build tag from \u003ccode\u003eWHEEL\u003c/code\u003e (above changes by Benjamin Gilbert)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 23.2\u003c/li\u003e\n\u003cli\u003eFixed ABI tag generation for CPython 3.13a1 on Windows (PR by Sam Gross)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\nthe \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.44.0 (2024-08-04)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e\nitself\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7855525de4093257e7bfb434877265e227356566\"\u003e\u003ccode\u003e7855525\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d343391c20f8f6cc89a61a6f1573522c59d3d7a3\"\u003e\u003ccode\u003ed343391\u003c/code\u003e\u003c/a\u003e Fixed wrong wheel file names in converted pure-Python eggs/wininsts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d78f0e372199f8294556345d867af4d3cf118418\"\u003e\u003ccode\u003ed78f0e3\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/f064c699209e36ec2948537b7cadabf84a110c30\"\u003e\u003ccode\u003ef064c69\u003c/code\u003e\u003c/a\u003e Added license files for vendored \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/68387afcd33cb514a4da811d2fc5de73c8797e48\"\u003e\u003ccode\u003e68387af\u003c/code\u003e\u003c/a\u003e Only configure setuptools logging if bdist_wheel is imported (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/641\"\u003e#641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c81f5c954a8ca7698e6df9de39cf0013295949fa\"\u003e\u003ccode\u003ec81f5c9\u003c/code\u003e\u003c/a\u003e Refactored the \u003ccode\u003ewheel convert\u003c/code\u003e command to not require setuptools (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/640\"\u003e#640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e43464d32feaddddb235ffe21b4bf13c1193465d\"\u003e\u003ccode\u003ee43464d\u003c/code\u003e\u003c/a\u003e Adjusted target Python versions in GitHub CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e9894e71bc62e5808710bc8c2c268de51aef52d4\"\u003e\u003ccode\u003ee9894e7\u003c/code\u003e\u003c/a\u003e Tweaked pytest settings to make the tracebacks easier to read\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/baf6bf89562cb42a0ca71cc1e804600b161952eb\"\u003e\u003ccode\u003ebaf6bf8\u003c/code\u003e\u003c/a\u003e Removed Cirrus CI configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/28c1ba1e2a6d08edc03c73e29293a571888981f9\"\u003e\u003ccode\u003e28c1ba1\u003c/code\u003e\u003c/a\u003e Improved compatibility with future versions of \u003ccode\u003esetuptools\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.40.0...0.45.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/hibare/Moni/pull/723","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibare%2FMoni/issues/723","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/723/packages"},{"uuid":"2664371557","node_id":"PR_kwDOAY6fL86ezxVl","number":3349,"state":"closed","title":"⬆️ Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-07-14T14:18:14.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-14T13:57:09.000Z","updated_at":"2025-07-14T14:18:14.000Z","time_to_close":1265,"merged_at":"2025-07-14T14:18:14.000Z","merged_by":"nikolas","closed_by":null,"dependency_metadata":{"prefix":"⬆️ Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/ccnmtl/footprints/pull/3349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccnmtl%2Ffootprints/issues/3349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3349/packages"},{"uuid":"2645981078","node_id":"PR_kwDOLLJtpc6dtneW","number":50,"state":"open","title":"Bump the python-packages group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-07T08:54:29.000Z","updated_at":"2025-07-07T08:54:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":9,"packages":[{"name":"django","old_version":"5.2.1","new_version":"5.2.4","repository_url":"https://github.com/django/django"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"ruff","old_version":"0.11.12","new_version":"0.12.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.0","new_version":"5.2.1","repository_url":"https://github.com/sponsors/typeddjango"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"asgiref","old_version":"3.8.1","new_version":"3.9.0","repository_url":"https://github.com/django/asgiref"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.26.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.2.1` | `5.2.4` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.12` | `0.12.2` |\n| [mypy](https://github.com/python/mypy) | `1.16.0` | `1.16.1` |\n| [django-stubs](https://github.com/sponsors/typeddjango) | `5.2.0` | `5.2.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `6.2.1` |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.9.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.26.0` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n\n\nUpdates `django` from 5.2.1 to 5.2.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c941d0deec0ea08a30670be0fac879f2372f071b\"\u003e\u003ccode\u003ec941d0d\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.4 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47a618d45c6e40dd59f4cdd46fd5fc7d11626f6d\"\u003e\u003ccode\u003e47a618d\u003c/code\u003e\u003c/a\u003e Fixed AttributeError for enterContext() on Python \u0026lt; 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a150160c9fc6ba6220f1e63863b03e7f7978b747\"\u003e\u003ccode\u003ea150160\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36464\"\u003e#36464\u003c/a\u003e -- Fixed \u0026quot;__in\u0026quot; tuple lookup on backends lacking native ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/db5da3c91c3122300680c4e7200a463273a5351e\"\u003e\u003ccode\u003edb5da3c\u003c/code\u003e\u003c/a\u003e [5.2.x] Clarified that only latest dependency versions are valid for security...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/359af3779a66281361aff50629c25e81fcfec048\"\u003e\u003ccode\u003e359af37\u003c/code\u003e\u003c/a\u003e [5.2.x] Added guidance on AI-assisted security reports to docs/internals/secu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1d89691c7481fbcef6a7bc396e41a651372c1cf3\"\u003e\u003ccode\u003e1d89691\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36453\"\u003e#36453\u003c/a\u003e -- Made When.condition resolve with for_save=False.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4de4edf2c05cc80c514c989db480f2fe23ad5ee2\"\u003e\u003ccode\u003e4de4edf\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36447\"\u003e#36447\u003c/a\u003e -- Selected preferred media type based on quality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f5cc6a888b60e0f79415cdd206cedbcc441eed82\"\u003e\u003ccode\u003ef5cc6a8\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected jsonfield fieldlookup references.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/538616136be0f9c29f9122984a29e2c0a316958d\"\u003e\u003ccode\u003e5386161\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36463\"\u003e#36463\u003c/a\u003e -- Fixed grammar in docs/intro/contributing.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e3b2370795d8373c62b799b7c9fa3fef1c0a2bb1\"\u003e\u003ccode\u003ee3b2370\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36454\"\u003e#36454\u003c/a\u003e -- Fixed typo in docs/intro/tutorial08.txt.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.1...5.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.11.12 to 0.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Expand \u003ccode\u003eOptional[A]\u003c/code\u003e to \u003ccode\u003eA | None\u003c/code\u003e (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18572\"\u003e#18572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Mark \u003ccode\u003eUP008\u003c/code\u003e fix safe if no comments are in range (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18683\"\u003e#18683\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Fix \u003ccode\u003eC420\u003c/code\u003e to prepend whitespace when needed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18616\"\u003e#18616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF403\u003c/code\u003e panic on attribute or subscription loop variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19042\"\u003e#19042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix \u003ccode\u003eD413\u003c/code\u003e infinite loop for parenthesized docstring (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18930\"\u003e#18930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLW0108\u003c/code\u003e autofix introducing a syntax error when the lambda's body contains an assignment expression (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18678\"\u003e#18678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix false positive on empty tuples (\u003ccode\u003eFURB168\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19058\"\u003e#19058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow more \u003ccode\u003efield\u003c/code\u003e calls from \u003ccode\u003eattrs\u003c/code\u003e (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19021\"\u003e#19021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix syntax error introduced for an empty string followed by a u-prefixed string (\u003ccode\u003eUP025\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18899\"\u003e#18899\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Allow \u003ccode\u003euvx\u003c/code\u003e in shebang line (\u003ccode\u003eEXE003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18967\"\u003e#18967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas\u003c/code\u003e] Avoid flagging \u003ccode\u003ePD002\u003c/code\u003e if \u003ccode\u003epandas\u003c/code\u003e is not imported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18963\"\u003e#18963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid PEP-604 unions with \u003ccode\u003etyping.NamedTuple\u003c/code\u003e (\u003ccode\u003eUP007\u003c/code\u003e, \u003ccode\u003eUP045\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18682\"\u003e#18682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument link between \u003ccode\u003eimport-outside-top-level (PLC0415)\u003c/code\u003e and \u003ccode\u003elint.flake8-tidy-imports.banned-module-level-imports\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18733\"\u003e#18733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix description of the \u003ccode\u003eformat.skip-magic-trailing-comma\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19095\"\u003e#19095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR302\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18988\"\u003e#18988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR312\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18989\"\u003e#18989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Make \u003ccode\u003eANN401\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18974\"\u003e#18974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC100\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18993\"\u003e#18993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC105\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19002\"\u003e#19002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC110\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18975\"\u003e#18975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC210\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18977\"\u003e#18977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC220\u003c/code\u003e, \u003ccode\u003eASYNC221\u003c/code\u003e, and \u003ccode\u003eASYNC222\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18978\"\u003e#18978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC251\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18990\"\u003e#18990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS201\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19017\"\u003e#19017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS604\u003c/code\u003e and \u003ccode\u003eS609\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19049\"\u003e#19049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB028\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19054\"\u003e#19054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB911\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19051\"\u003e#19051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ011\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19055\"\u003e#19055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ901\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19056\"\u003e#19056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make \u003ccode\u003ePYI032\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19061\"\u003e#19061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI014\u003c/code\u003e, \u003ccode\u003ePYI015\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19097\"\u003e#19097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI042\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19101\"\u003e#19101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI059\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19080\"\u003e#19080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI062\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19079\"\u003e#19079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT023\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19104\"\u003e#19104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT030\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19105\"\u003e#19105\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.2\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Expand \u003ccode\u003eOptional[A]\u003c/code\u003e to \u003ccode\u003eA | None\u003c/code\u003e (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18572\"\u003e#18572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Mark \u003ccode\u003eUP008\u003c/code\u003e fix safe if no comments are in range (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18683\"\u003e#18683\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Fix \u003ccode\u003eC420\u003c/code\u003e to prepend whitespace when needed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18616\"\u003e#18616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF403\u003c/code\u003e panic on attribute or subscription loop variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19042\"\u003e#19042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix \u003ccode\u003eD413\u003c/code\u003e infinite loop for parenthesized docstring (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18930\"\u003e#18930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLW0108\u003c/code\u003e autofix introducing a syntax error when the lambda's body contains an assignment expression (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18678\"\u003e#18678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix false positive on empty tuples (\u003ccode\u003eFURB168\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19058\"\u003e#19058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow more \u003ccode\u003efield\u003c/code\u003e calls from \u003ccode\u003eattrs\u003c/code\u003e (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19021\"\u003e#19021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix syntax error introduced for an empty string followed by a u-prefixed string (\u003ccode\u003eUP025\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18899\"\u003e#18899\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Allow \u003ccode\u003euvx\u003c/code\u003e in shebang line (\u003ccode\u003eEXE003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18967\"\u003e#18967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas\u003c/code\u003e] Avoid flagging \u003ccode\u003ePD002\u003c/code\u003e if \u003ccode\u003epandas\u003c/code\u003e is not imported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18963\"\u003e#18963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid PEP-604 unions with \u003ccode\u003etyping.NamedTuple\u003c/code\u003e (\u003ccode\u003eUP007\u003c/code\u003e, \u003ccode\u003eUP045\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18682\"\u003e#18682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument link between \u003ccode\u003eimport-outside-top-level (PLC0415)\u003c/code\u003e and \u003ccode\u003elint.flake8-tidy-imports.banned-module-level-imports\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18733\"\u003e#18733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix description of the \u003ccode\u003eformat.skip-magic-trailing-comma\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19095\"\u003e#19095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR302\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18988\"\u003e#18988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR312\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18989\"\u003e#18989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Make \u003ccode\u003eANN401\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18974\"\u003e#18974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC100\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18993\"\u003e#18993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC105\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19002\"\u003e#19002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC110\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18975\"\u003e#18975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC210\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18977\"\u003e#18977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC220\u003c/code\u003e, \u003ccode\u003eASYNC221\u003c/code\u003e, and \u003ccode\u003eASYNC222\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18978\"\u003e#18978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC251\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18990\"\u003e#18990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS201\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19017\"\u003e#19017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS604\u003c/code\u003e and \u003ccode\u003eS609\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19049\"\u003e#19049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB028\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19054\"\u003e#19054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB911\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19051\"\u003e#19051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ011\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19055\"\u003e#19055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ901\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19056\"\u003e#19056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make \u003ccode\u003ePYI032\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19061\"\u003e#19061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI014\u003c/code\u003e, \u003ccode\u003ePYI015\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19097\"\u003e#19097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI042\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19101\"\u003e#19101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI059\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19080\"\u003e#19080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI062\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19079\"\u003e#19079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT023\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19104\"\u003e#19104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT030\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19105\"\u003e#19105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-quotes\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eQ003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19106\"\u003e#19106\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9bee8376a17401f9736b45fdefffb62edc2f1668\"\u003e\u003ccode\u003e9bee837\u003c/code\u003e\u003c/a\u003e Bump 0.12.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19126\"\u003e#19126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1c6717b149ddfbcd4aa0aee2e160320474392da9\"\u003e\u003ccode\u003e1c6717b\u003c/code\u003e\u003c/a\u003e Filter private symbols from stubs if they are internal types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19121\"\u003e#19121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1b813cd5f1933ab05ba7b96ace798199429c0bd6\"\u003e\u003ccode\u003e1b813cd\u003c/code\u003e\u003c/a\u003e Fix description of the \u003ccode\u003eformat.skip-magic-trailing-comma\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19095\"\u003e#19095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b00f68a23cedbd3a38fc25bac63638f0f11fc3f0\"\u003e\u003ccode\u003eb00f68a\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Allow more \u003ccode\u003efield\u003c/code\u003e calls from \u003ccode\u003eattrs\u003c/code\u003e (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19021\"\u003e#19021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/710c60f7135879b05f6c05a34085cd7af5c19e7f\"\u003e\u003ccode\u003e710c60f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT023\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19104\"\u003e#19104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/811e25d16e22ca4ce124d9514232211c9a0b27a1\"\u003e\u003ccode\u003e811e25d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT030\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19105\"\u003e#19105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b78af2db4822dc55acbfb1024b30e69fe0262311\"\u003e\u003ccode\u003eb78af2d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-quotes\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eQ003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19106\"\u003e#19106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f36f0677f09b0ed1ba20f583b6f017c4f7d26c8\"\u003e\u003ccode\u003e4f36f06\u003c/code\u003e\u003c/a\u003e Document link between \u003ccode\u003eimport-outside-top-level (PLC0415)\u003c/code\u003e and `lint.flake8-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2589a2938ee58a1ff1b54a9558807ecb000ccca3\"\u003e\u003ccode\u003e2589a29\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eSIM113\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19109\"\u003e#19109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/26bb8f7b7189558520bb386867579768b5a17347\"\u003e\u003ccode\u003e26bb8f7\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19110\"\u003e#19110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.11.12...0.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/68b8fa097d080c92d30a429bc74de8acd56caf85\"\u003e\u003ccode\u003e68b8fa0\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e253eded9c887630f3f5404c4b9f73f13570476a\"\u003e\u003ccode\u003ee253ede\u003c/code\u003e\u003c/a\u003e Single underscore is not a sunder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19273\"\u003e#19273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9fb5ff66c51bd971d7a6b1260cc0ec9f1b82cc06\"\u003e\u003ccode\u003e9fb5ff6\u003c/code\u003e\u003c/a\u003e Fix properties with setters after deleters (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19248\"\u003e#19248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c20fd7838338cd65d6c7c6e252eda85996cfc98e\"\u003e\u003ccode\u003ec20fd78\u003c/code\u003e\u003c/a\u003e Handle assignment of bound methods in class bodies (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19233\"\u003e#19233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c86480ce51e4bb6db21f4b3f0b3ec8833aafc8ce\"\u003e\u003ccode\u003ec86480c\u003c/code\u003e\u003c/a\u003e Tighten metaclass \u003cstrong\u003ecall\u003c/strong\u003e handling in protocols (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19191\"\u003e#19191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/cb3c6ec6a7aaa96a0e26768a946ac63ea14115f2\"\u003e\u003ccode\u003ecb3c6ec\u003c/code\u003e\u003c/a\u003e Fix crash on partial type used as context (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19216\"\u003e#19216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c39f5e73c47182e51c5d8d488f7cc7301257c974\"\u003e\u003ccode\u003ec39f5e7\u003c/code\u003e\u003c/a\u003e [mypyc] Fixing condition for handling user-defined \u003cstrong\u003edel\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19188\"\u003e#19188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0a4f28431faa18e59d35bc269cb0ea6c00810653\"\u003e\u003ccode\u003e0a4f284\u003c/code\u003e\u003c/a\u003e Fix crash on invalid property inside its own body (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19208\"\u003e#19208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9b079f6592740a51c0e629728eeb0324ad85126f\"\u003e\u003ccode\u003e9b079f6\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1+dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 5.2.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/typeddjango/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.1.1 to 6.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\nonce::CoverageWarning\u003c/p\u003e\n\u003cp\u003eThis fixes most of the bad interactions that are occurring on pytest 8.4 with \u003ccode\u003efilterwarnings=error\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe plugin will check if there already matching rules for the 3 categories\n(\u003ccode\u003eResourceWarning\u003c/code\u003e, \u003ccode\u003ePytestCovWarning\u003c/code\u003e, \u003ccode\u003eCoverageWarning\u003c/code\u003e) and message (\u003ccode\u003eunclosed database in \u0026lt;sqlite3.Connection object at\u003c/code\u003e) before adding the filters.\u003c/p\u003e\n\u003cp\u003eThis means you can have this in your pytest configuration for complete oblivion (not recommended, if that is not clear)::\u003c/p\u003e\n\u003cp\u003efilterwarnings = [\n\u0026quot;error\u0026quot;,\n\u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot;,\n\u0026quot;ignore::PytestCovWarning\u0026quot;,\n\u0026quot;ignore::CoverageWarning\u0026quot;,\n]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/55dbe43f04f839b760ea346e560276d641998c77\"\u003e\u003ccode\u003e55dbe43\u003c/code\u003e\u003c/a\u003e Bump version: 6.2.0 → 6.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/d17e9b765e9832e70fe8101daa2f5f42ce447cc2\"\u003e\u003ccode\u003ed17e9b7\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8964ab7595dd10748cad66376289476049340ea4\"\u003e\u003ccode\u003e8964ab7\u003c/code\u003e\u003c/a\u003e Add a note for this warning disable.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/e932e41e50f37d03a4d600084411661bc1f08ab8\"\u003e\u003ccode\u003ee932e41\u003c/code\u003e\u003c/a\u003e Prevent unimported warnings @ pytest-xdist workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/573379ba34539db32cb3a43222f33b7c304af34a\"\u003e\u003ccode\u003e573379b\u003c/code\u003e\u003c/a\u003e Bring pytest-cov's suprocess management in line with coverage's process_start...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f1884e854f2687ccfe36747a11e7f3352f168f90\"\u003e\u003ccode\u003ef1884e8\u003c/code\u003e\u003c/a\u003e Fix xdist pin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/512c6699010cc0d8145f1f926d876cafba840015\"\u003e\u003ccode\u003e512c669\u003c/code\u003e\u003c/a\u003e Added minium version requirements for pluggin (for new-style hookwrappers). P...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/629ba644a56148d09fe0f2c20602681bc20027a7\"\u003e\u003ccode\u003e629ba64\u003c/code\u003e\u003c/a\u003e Remove deprecated license classifier.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/dca5723086a00e8c145a84761b0ce810a8079892\"\u003e\u003ccode\u003edca5723\u003c/code\u003e\u003c/a\u003e Bump version: 6.1.1 → 6.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f69166a08444db4736c611cdc7746eeac9a2f158\"\u003e\u003ccode\u003ef69166a\u003c/code\u003e\u003c/a\u003e Also trigger the sqlite warning.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v6.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.8.1 to 3.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.0 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrops support for (end-of-life) Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes an error with conflicting kwargs between AsyncToSync and the wrapped\nfunction. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/471\"\u003e#471\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes Local isolation between asyncio Tasks. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/478\"\u003e#478\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a deadlock in CurrentThreadExecutor with nested async_to_sync →\nsync_to_async → async_to_sync → create_task calls. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fc0599e122edcde0f84962b219ea591428124106\"\u003e\u003ccode\u003efc0599e\u003c/code\u003e\u003c/a\u003e Releasing 3.9.0. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b126e0c01144bd980937b658dd6eaf236150fe63\"\u003e\u003ccode\u003eb126e0c\u003c/code\u003e\u003c/a\u003e Removed unneeded typing workaround (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ef1678a65b891ef838525d1f3a658875acb9018a\"\u003e\u003ccode\u003eef1678a\u003c/code\u003e\u003c/a\u003e Migrate work for finished \u003ccode\u003eCurrentThreadExecutor\u003c/code\u003e to previous executor (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/37870f58963c38617a910743ba69311ec8e4e0d0\"\u003e\u003ccode\u003e37870f5\u003c/code\u003e\u003c/a\u003e Fixed reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ec6f666621407674e80d039bf235ba2662193bdb\"\u003e\u003ccode\u003eec6f666\u003c/code\u003e\u003c/a\u003e Add MicroPie framework to \u003ccode\u003eimplementations.rst\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/5eff04dce46b74172a1d6d1c5b02409f0afe33b6\"\u003e\u003ccode\u003e5eff04d\u003c/code\u003e\u003c/a\u003e Lazily bind ApplicationCommunicator to event loop (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/58da2878a5e010eeb9d187f6954d93288d1825d7\"\u003e\u003ccode\u003e58da287\u003c/code\u003e\u003c/a\u003e Add Flama to implementations.rst (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/327821b533287d09bd2669c73c1c3d5119ce8bd5\"\u003e\u003ccode\u003e327821b\u003c/code\u003e\u003c/a\u003e Avoid using event_loop.is_running() (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/719c46d213aaf1d60f0269c7f73bf8e2a45b43fa\"\u003e\u003ccode\u003e719c46d\u003c/code\u003e\u003c/a\u003e Modernize loop handling in asgiref.server  (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/a0e215964927f81f3984ec042815a950448f64e5\"\u003e\u003ccode\u003ea0e2159\u003c/code\u003e\u003c/a\u003e Avoid vendoring asyncio.run (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rpds-py` from 0.25.1 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/rpds/releases\"\u003erpds-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild CPython 3.14 wheels by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/134\"\u003ecrate-py/rpds#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire maturin\u0026gt;=1.9.0 to ensure support for PEP 639 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/146\"\u003ecrate-py/rpds#146\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.25.1...v0.26.0\"\u003ehttps://github.com/crate-py/rpds/compare/v0.25.1...v0.26.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/ff9278f7e718760bb052cd4c130bbdeca8d27b20\"\u003e\u003ccode\u003eff9278f\u003c/code\u003e\u003c/a\u003e Tag a release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/d2f69ef82b23135fedc8b42bda743f9c53af607d\"\u003e\u003ccode\u003ed2f69ef\u003c/code\u003e\u003c/a\u003e Update requirements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/58ee607148940533f212893ac886f7e82b3c35bb\"\u003e\u003ccode\u003e58ee607\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/146\"\u003e#146\u003c/a\u003e from edgarrmondragon/136-require-maturin-1.9-pep639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5433ab6aa936aa835d97bb204fd73d289525e331\"\u003e\u003ccode\u003e5433ab6\u003c/code\u003e\u003c/a\u003e Require maturin\u0026gt;=1.9.0 to ensure support for PEP 639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/7557e538fb8d14c4b534133b9ac48f3940e787b4\"\u003e\u003ccode\u003e7557e53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/144\"\u003e#144\u003c/a\u003e from crate-py/dependabot/github_actions/github/codeql...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/d0963ae1a2b0bcc61702adb3249ae3b73bc32dda\"\u003e\u003ccode\u003ed0963ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/145\"\u003e#145\u003c/a\u003e from crate-py/dependabot/github_actions/astral-sh/set...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/513ec227cba30c93b4df9c820b4d54e7e6dcb318\"\u003e\u003ccode\u003e513ec22\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6.3.0 to 6.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/cbb4277105e08df8248c7e64ab99d5a51a1b4568\"\u003e\u003ccode\u003ecbb4277\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.29.0 to 3.29.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/25123e9a2fed652d68ec490ac0481e543f3c77fd\"\u003e\u003ccode\u003e25123e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/143\"\u003e#143\u003c/a\u003e from crate-py/dependabot/github_actions/PyO3/maturin-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/7a59bb7f1848a1ac0793bf77066a1381d33de20f\"\u003e\u003ccode\u003e7a59bb7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/142\"\u003e#142\u003c/a\u003e from crate-py/dependabot/github_actions/astral-sh/set...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.25.1...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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/AlexanderZug/django_template/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderZug%2Fdjango_template/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"},{"uuid":"2645592738","node_id":"PR_kwDOC1hkXs6dsIqi","number":2369,"state":"open","title":"build(deps-dev): bump uritemplate from 4.1.1 to 4.2.0 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-07T06:12:49.000Z","updated_at":"2025-07-07T06:12:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/varfish-org/varfish-server/pull/2369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/varfish-org%2Fvarfish-server/issues/2369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2369/packages"},{"uuid":"2636333679","node_id":"PR_kwDOKrpNGs6dI0Jv","number":1817,"state":"closed","title":"Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-07-02T18:59:25.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-02T18:59:12.000Z","updated_at":"2025-07-02T18:59:25.000Z","time_to_close":13,"merged_at":"2025-07-02T18:59:25.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/shilu10/MANN-Meta-Learning/pull/1817","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shilu10%2FMANN-Meta-Learning/issues/1817","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1817/packages"},{"uuid":"2628343965","node_id":"PR_kwDOLLJtpc6cqVid","number":49,"state":"closed","title":"Bump the python-packages group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-07-07T07:16:37.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-30T09:34:56.000Z","updated_at":"2025-07-07T07:16:37.000Z","time_to_close":596501,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":7,"packages":[{"name":"django","old_version":"5.2.1","new_version":"5.2.3","repository_url":"https://github.com/django/django"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"ruff","old_version":"0.11.12","new_version":"0.12.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.0","new_version":"5.2.1","repository_url":"https://github.com/sponsors/typeddjango"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.2.1` | `5.2.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.12` | `0.12.1` |\n| [mypy](https://github.com/python/mypy) | `1.16.0` | `1.16.1` |\n| [django-stubs](https://github.com/sponsors/typeddjango) | `5.2.0` | `5.2.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `6.2.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n\n\nUpdates `django` from 5.2.1 to 5.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/15883bc669303242742a81f06958175dddbb66de\"\u003e\u003ccode\u003e15883bc\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.3 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/264003146f951a798e573ca563d0bf817fb91ad3\"\u003e\u003ccode\u003e2640031\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/373\"\u003e#373\u003c/a\u003e -- Doc'd that on_delete is ignored for ForeignObject.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f99c8856d17e29564bc5d432bb7d7b8f73bc73c\"\u003e\u003ccode\u003e6f99c88\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36449\"\u003e#36449\u003c/a\u003e -- Fixed field types in example model using ForeignObject.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/aec11dbb4c2c66af8d09dc194a46950751b0ea34\"\u003e\u003ccode\u003eaec11db\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36419\"\u003e#36419\u003c/a\u003e -- Fixed BulkUpdateTests.test_json_field_sql_null() crash...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cc5079730a50e77590d465563807871b8f230ff5\"\u003e\u003ccode\u003ecc50797\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36446\"\u003e#36446\u003c/a\u003e -- Restored \u0026quot;q\u0026quot; in internal MediaType.params property.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6fc620b4a8e91839b93af2b52d80bdbd5f8a1fcc\"\u003e\u003ccode\u003e6fc620b\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36419\"\u003e#36419\u003c/a\u003e -- Ensured for_save was propagated when resolving expres...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8fcc83953c350e158a484bf1da0aa1b79b69bb07\"\u003e\u003ccode\u003e8fcc839\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-48432 -- Prevented log injection in remaining response ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9d7fc9eb1c79242f3330aa62629699a8b5fc5451\"\u003e\u003ccode\u003e9d7fc9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-48432 -- Made SuspiciousOperation logging use log_respo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c042af7147490e3ae07d219cf10f3d6d1b16cad3\"\u003e\u003ccode\u003ec042af7\u003c/code\u003e\u003c/a\u003e [5.2.x] Refactored logging_tests to reuse assertions for log records.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5901cfe591139b4389171ba738be81e8f4d5cfc9\"\u003e\u003ccode\u003e5901cfe\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.1...5.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.11.12 to 0.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Extend \u003ccode\u003eEM101\u003c/code\u003e to support byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18867\"\u003e#18867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH202\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18763\"\u003e#18763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Add \u003ccode\u003eAsyncMock\u003c/code\u003e methods to \u003ccode\u003einvalid-mock-access\u003c/code\u003e (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18547\"\u003e#18547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore \u003ccode\u003e__init__.py\u003c/code\u003e files in (\u003ccode\u003ePLC0414\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18400\"\u003e#18400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Trigger \u003ccode\u003eRUF037\u003c/code\u003e for empty string and byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18862\"\u003e#18862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix missing blank lines before decorated classes in \u003ccode\u003e.pyi\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18888\"\u003e#18888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid generating diagnostics with per-file ignores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18801\"\u003e#18801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle parenthesized arguments in \u003ccode\u003eremove_argument\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18805\"\u003e#18805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Avoid false positive for \u003ccode\u003eexc_info=True\u003c/code\u003e outside \u003ccode\u003elogger.exception\u003c/code\u003e (\u003ccode\u003eLOG014\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18737\"\u003e#18737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Enforce \u003ccode\u003epytest\u003c/code\u003e import for decorators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18779\"\u003e#18779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Mark autofix for \u003ccode\u003ePT001\u003c/code\u003e and \u003ccode\u003ePT023\u003c/code\u003e as unsafe if there's comments in the decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18792\"\u003e#18792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] \u003ccode\u003ePT001\u003c/code\u003e/\u003ccode\u003ePT023\u003c/code\u003e fix makes syntax error on parenthesized decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18782\"\u003e#18782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-raise\u003c/code\u003e] Make fix unsafe if it deletes comments (\u003ccode\u003eRSE102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18788\"\u003e#18788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix \u003ccode\u003eSIM911\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18793\"\u003e#18793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix false negatives for shadowed bindings (\u003ccode\u003eSIM910\u003c/code\u003e, \u003ccode\u003eSIM911\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18794\"\u003e#18794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve original behavior for \u003ccode\u003eexcept ()\u003c/code\u003e and bare \u003ccode\u003eexcept\u003c/code\u003e (\u003ccode\u003eSIM105\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18213\"\u003e#18213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI041\u003c/code\u003e's fix causing \u003ccode\u003eTypeError\u003c/code\u003e with \u003ccode\u003eNone | None | ...\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18637\"\u003e#18637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF101\u003c/code\u003e autofix creating a syntax error and mark autofix as unsafe if there are comments in the \u003ccode\u003elist\u003c/code\u003e call expr (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18803\"\u003e#18803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix false negative in \u003ccode\u003ePERF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18866\"\u003e#18866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid flattening nested \u003ccode\u003emin\u003c/code\u003e/\u003ccode\u003emax\u003c/code\u003e when outer call has single argument (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16885\"\u003e#16885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2801\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18857\"\u003e#18857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Mark \u003ccode\u003ePLE0241\u003c/code\u003e autofix as unsafe if there's comments in the base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18832\"\u003e#18832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Suppress \u003ccode\u003ePLE2510\u003c/code\u003e/\u003ccode\u003ePLE2512\u003c/code\u003e/\u003ccode\u003ePLE2513\u003c/code\u003e/\u003ccode\u003ePLE2514\u003c/code\u003e/\u003ccode\u003ePLE2515\u003c/code\u003e autofix if the text contains an odd number of backslashes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Detect more exotic float literals in \u003ccode\u003eFURB164\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18925\"\u003e#18925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB163\u003c/code\u003e autofix creating a syntax error for \u003ccode\u003eyield\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18756\"\u003e#18756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB129\u003c/code\u003e autofix as unsafe if there's comments in the \u003ccode\u003ereadlines\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18858\"\u003e#18858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positives and negatives in \u003ccode\u003eRUF010\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18690\"\u003e#18690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix casing of \u003ccode\u003eanalyze.direction\u003c/code\u003e variant names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18892\"\u003e#18892\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix f-string interpolation escaping in generated fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18882\"\u003e#18882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-return\u003c/code\u003e] Mark \u003ccode\u003eRET501\u003c/code\u003e fix unsafe if comments are inside (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18780\"\u003e#18780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Fix detection for large integer sleep durations in \u003ccode\u003eASYNC116\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18767\"\u003e#18767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Mark autofix for \u003ccode\u003eASYNC115\u003c/code\u003e as unsafe if the call expression contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18753\"\u003e#18753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark autofix for \u003ccode\u003eB004\u003c/code\u003e as unsafe if the \u003ccode\u003ehasattr\u003c/code\u003e call expr contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18755\"\u003e#18755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehension\u003c/code\u003e] Mark autofix for \u003ccode\u003eC420\u003c/code\u003e as unsafe if there's comments inside the dict comprehension (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18768\"\u003e#18768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Handle template strings for comprehension fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18710\"\u003e#18710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-future-annotations\u003c/code\u003e] Add autofix (\u003ccode\u003eFA100\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18903\"\u003e#18903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Mark \u003ccode\u003eF504\u003c/code\u003e/\u003ccode\u003eF522\u003c/code\u003e/\u003ccode\u003eF523\u003c/code\u003e autofix as unsafe if there's a call with side effect (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow fix with comments and document performance implications (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect more exotic \u003ccode\u003eNaN\u003c/code\u003e literals in \u003ccode\u003ePLW0177\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18630\"\u003e#18630\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.1\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Extend \u003ccode\u003eEM101\u003c/code\u003e to support byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18867\"\u003e#18867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH202\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18763\"\u003e#18763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Add \u003ccode\u003eAsyncMock\u003c/code\u003e methods to \u003ccode\u003einvalid-mock-access\u003c/code\u003e (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18547\"\u003e#18547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore \u003ccode\u003e__init__.py\u003c/code\u003e files in (\u003ccode\u003ePLC0414\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18400\"\u003e#18400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Trigger \u003ccode\u003eRUF037\u003c/code\u003e for empty string and byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18862\"\u003e#18862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix missing blank lines before decorated classes in \u003ccode\u003e.pyi\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18888\"\u003e#18888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid generating diagnostics with per-file ignores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18801\"\u003e#18801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle parenthesized arguments in \u003ccode\u003eremove_argument\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18805\"\u003e#18805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Avoid false positive for \u003ccode\u003eexc_info=True\u003c/code\u003e outside \u003ccode\u003elogger.exception\u003c/code\u003e (\u003ccode\u003eLOG014\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18737\"\u003e#18737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Enforce \u003ccode\u003epytest\u003c/code\u003e import for decorators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18779\"\u003e#18779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Mark autofix for \u003ccode\u003ePT001\u003c/code\u003e and \u003ccode\u003ePT023\u003c/code\u003e as unsafe if there's comments in the decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18792\"\u003e#18792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] \u003ccode\u003ePT001\u003c/code\u003e/\u003ccode\u003ePT023\u003c/code\u003e fix makes syntax error on parenthesized decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18782\"\u003e#18782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-raise\u003c/code\u003e] Make fix unsafe if it deletes comments (\u003ccode\u003eRSE102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18788\"\u003e#18788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix \u003ccode\u003eSIM911\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18793\"\u003e#18793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix false negatives for shadowed bindings (\u003ccode\u003eSIM910\u003c/code\u003e, \u003ccode\u003eSIM911\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18794\"\u003e#18794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve original behavior for \u003ccode\u003eexcept ()\u003c/code\u003e and bare \u003ccode\u003eexcept\u003c/code\u003e (\u003ccode\u003eSIM105\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18213\"\u003e#18213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI041\u003c/code\u003e's fix causing \u003ccode\u003eTypeError\u003c/code\u003e with \u003ccode\u003eNone | None | ...\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18637\"\u003e#18637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF101\u003c/code\u003e autofix creating a syntax error and mark autofix as unsafe if there are comments in the \u003ccode\u003elist\u003c/code\u003e call expr (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18803\"\u003e#18803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix false negative in \u003ccode\u003ePERF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18866\"\u003e#18866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid flattening nested \u003ccode\u003emin\u003c/code\u003e/\u003ccode\u003emax\u003c/code\u003e when outer call has single argument (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16885\"\u003e#16885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2801\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18857\"\u003e#18857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Mark \u003ccode\u003ePLE0241\u003c/code\u003e autofix as unsafe if there's comments in the base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18832\"\u003e#18832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Suppress \u003ccode\u003ePLE2510\u003c/code\u003e/\u003ccode\u003ePLE2512\u003c/code\u003e/\u003ccode\u003ePLE2513\u003c/code\u003e/\u003ccode\u003ePLE2514\u003c/code\u003e/\u003ccode\u003ePLE2515\u003c/code\u003e autofix if the text contains an odd number of backslashes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Detect more exotic float literals in \u003ccode\u003eFURB164\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18925\"\u003e#18925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB163\u003c/code\u003e autofix creating a syntax error for \u003ccode\u003eyield\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18756\"\u003e#18756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB129\u003c/code\u003e autofix as unsafe if there's comments in the \u003ccode\u003ereadlines\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18858\"\u003e#18858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positives and negatives in \u003ccode\u003eRUF010\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18690\"\u003e#18690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix casing of \u003ccode\u003eanalyze.direction\u003c/code\u003e variant names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18892\"\u003e#18892\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix f-string interpolation escaping in generated fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18882\"\u003e#18882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-return\u003c/code\u003e] Mark \u003ccode\u003eRET501\u003c/code\u003e fix unsafe if comments are inside (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18780\"\u003e#18780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Fix detection for large integer sleep durations in \u003ccode\u003eASYNC116\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18767\"\u003e#18767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Mark autofix for \u003ccode\u003eASYNC115\u003c/code\u003e as unsafe if the call expression contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18753\"\u003e#18753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark autofix for \u003ccode\u003eB004\u003c/code\u003e as unsafe if the \u003ccode\u003ehasattr\u003c/code\u003e call expr contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18755\"\u003e#18755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehension\u003c/code\u003e] Mark autofix for \u003ccode\u003eC420\u003c/code\u003e as unsafe if there's comments inside the dict comprehension (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18768\"\u003e#18768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Handle template strings for comprehension fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18710\"\u003e#18710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-future-annotations\u003c/code\u003e] Add autofix (\u003ccode\u003eFA100\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18903\"\u003e#18903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Mark \u003ccode\u003eF504\u003c/code\u003e/\u003ccode\u003eF522\u003c/code\u003e/\u003ccode\u003eF523\u003c/code\u003e autofix as unsafe if there's a call with side effect (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow fix with comments and document performance implications (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect more exotic \u003ccode\u003eNaN\u003c/code\u003e literals in \u003ccode\u003ePLW0177\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18630\"\u003e#18630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC1802\u003c/code\u003e autofix creating a syntax error and mark autofix as unsafe if there's comments in the \u003ccode\u003elen\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18836\"\u003e#18836\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/32c54189cb45a9d0409a1140265ce6d5fcec214d\"\u003e\u003ccode\u003e32c5418\u003c/code\u003e\u003c/a\u003e Bump 0.12.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18969\"\u003e#18969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b85c219283dcdae474642e9174352da5d9aee132\"\u003e\u003ccode\u003eb85c219\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eFastAPI\u003c/code\u003e] Add fix safety section to \u003ccode\u003eFAST002\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18940\"\u003e#18940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b1d1cf1d382acd745a57a391a7befb6c300f6c9a\"\u003e\u003ccode\u003eb1d1cf1\u003c/code\u003e\u003c/a\u003e [ty] Add regression test for leading tab mis-alignment in diagnostic renderin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1dcdf7f41d80b819576b8e146c1af9e72b44d2da\"\u003e\u003ccode\u003e1dcdf7f\u003c/code\u003e\u003c/a\u003e [ty] Resolve python environment in \u003ccode\u003eOptions::to_program_settings\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18960\"\u003e#18960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d00697621e2a772e9ad0b25c4c74f1572d72fd29\"\u003e\u003ccode\u003ed006976\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Fix false positives and negatives in \u003ccode\u003eRUF010\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18690\"\u003e#18690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/76619b96e504d63e574227e8d31d6ecfcd32d1c7\"\u003e\u003ccode\u003e76619b9\u003c/code\u003e\u003c/a\u003e [ty] Fix rendering of long lines that are indented with tabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e25cfba2b2fb607e16102cb5cd84cd775882d80\"\u003e\u003ccode\u003e6e25cfb\u003c/code\u003e\u003c/a\u003e [ty] Add regression test for diagnostic rendering panic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/76387295a581ed5c665b685e1d69fe2751ad24b1\"\u003e\u003ccode\u003e7638729\u003c/code\u003e\u003c/a\u003e [ty] Move venv and conda env discovery to \u003ccode\u003eSearchPath::from_settings\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18938\"\u003e#18938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d04e63a6d9dbb5c751c99d113d7eaf98b765b426\"\u003e\u003ccode\u003ed04e63a\u003c/code\u003e\u003c/a\u003e [ty] Add regression-benchmark for attribute-assignment hang (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18957\"\u003e#18957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86fd9b634e5526d2093aeb5a37dc6f30cefc1925\"\u003e\u003ccode\u003e86fd9b6\u003c/code\u003e\u003c/a\u003e [ty] Format conflicting types as an enumeration (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18956\"\u003e#18956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.11.12...0.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/68b8fa097d080c92d30a429bc74de8acd56caf85\"\u003e\u003ccode\u003e68b8fa0\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e253eded9c887630f3f5404c4b9f73f13570476a\"\u003e\u003ccode\u003ee253ede\u003c/code\u003e\u003c/a\u003e Single underscore is not a sunder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19273\"\u003e#19273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9fb5ff66c51bd971d7a6b1260cc0ec9f1b82cc06\"\u003e\u003ccode\u003e9fb5ff6\u003c/code\u003e\u003c/a\u003e Fix properties with setters after deleters (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19248\"\u003e#19248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c20fd7838338cd65d6c7c6e252eda85996cfc98e\"\u003e\u003ccode\u003ec20fd78\u003c/code\u003e\u003c/a\u003e Handle assignment of bound methods in class bodies (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19233\"\u003e#19233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c86480ce51e4bb6db21f4b3f0b3ec8833aafc8ce\"\u003e\u003ccode\u003ec86480c\u003c/code\u003e\u003c/a\u003e Tighten metaclass \u003cstrong\u003ecall\u003c/strong\u003e handling in protocols (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19191\"\u003e#19191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/cb3c6ec6a7aaa96a0e26768a946ac63ea14115f2\"\u003e\u003ccode\u003ecb3c6ec\u003c/code\u003e\u003c/a\u003e Fix crash on partial type used as context (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19216\"\u003e#19216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c39f5e73c47182e51c5d8d488f7cc7301257c974\"\u003e\u003ccode\u003ec39f5e7\u003c/code\u003e\u003c/a\u003e [mypyc] Fixing condition for handling user-defined \u003cstrong\u003edel\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19188\"\u003e#19188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0a4f28431faa18e59d35bc269cb0ea6c00810653\"\u003e\u003ccode\u003e0a4f284\u003c/code\u003e\u003c/a\u003e Fix crash on invalid property inside its own body (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19208\"\u003e#19208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9b079f6592740a51c0e629728eeb0324ad85126f\"\u003e\u003ccode\u003e9b079f6\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1+dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 5.2.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/typeddjango/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.1.1 to 6.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\nonce::CoverageWarning\u003c/p\u003e\n\u003cp\u003eThis fixes most of the bad interactions that are occurring on pytest 8.4 with \u003ccode\u003efilterwarnings=error\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe plugin will check if there already matching rules for the 3 categories\n(\u003ccode\u003eResourceWarning\u003c/code\u003e, \u003ccode\u003ePytestCovWarning\u003c/code\u003e, \u003ccode\u003eCoverageWarning\u003c/code\u003e) and message (\u003ccode\u003eunclosed database in \u0026lt;sqlite3.Connection object at\u003c/code\u003e) before adding the filters.\u003c/p\u003e\n\u003cp\u003eThis means you can have this in your pytest configuration for complete oblivion (not recommended, if that is not clear)::\u003c/p\u003e\n\u003cp\u003efilterwarnings = [\n\u0026quot;error\u0026quot;,\n\u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot;,\n\u0026quot;ignore::PytestCovWarning\u0026quot;,\n\u0026quot;ignore::CoverageWarning\u0026quot;,\n]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/55dbe43f04f839b760ea346e560276d641998c77\"\u003e\u003ccode\u003e55dbe43\u003c/code\u003e\u003c/a\u003e Bump version: 6.2.0 → 6.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/d17e9b765e9832e70fe8101daa2f5f42ce447cc2\"\u003e\u003ccode\u003ed17e9b7\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8964ab7595dd10748cad66376289476049340ea4\"\u003e\u003ccode\u003e8964ab7\u003c/code\u003e\u003c/a\u003e Add a note for this warning disable.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/e932e41e50f37d03a4d600084411661bc1f08ab8\"\u003e\u003ccode\u003ee932e41\u003c/code\u003e\u003c/a\u003e Prevent unimported warnings @ pytest-xdist workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/573379ba34539db32cb3a43222f33b7c304af34a\"\u003e\u003ccode\u003e573379b\u003c/code\u003e\u003c/a\u003e Bring pytest-cov's suprocess management in line with coverage's process_start...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f1884e854f2687ccfe36747a11e7f3352f168f90\"\u003e\u003ccode\u003ef1884e8\u003c/code\u003e\u003c/a\u003e Fix xdist pin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/512c6699010cc0d8145f1f926d876cafba840015\"\u003e\u003ccode\u003e512c669\u003c/code\u003e\u003c/a\u003e Added minium version requirements for pluggin (for new-style hookwrappers). P...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/629ba644a56148d09fe0f2c20602681bc20027a7\"\u003e\u003ccode\u003e629ba64\u003c/code\u003e\u003c/a\u003e Remove deprecated license classifier.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/dca5723086a00e8c145a84761b0ce810a8079892\"\u003e\u003ccode\u003edca5723\u003c/code\u003e\u003c/a\u003e Bump version: 6.1.1 → 6.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f69166a08444db4736c611cdc7746eeac9a2f158\"\u003e\u003ccode\u003ef69166a\u003c/code\u003e\u003c/a\u003e Also trigger the sqlite warning.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v6.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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/AlexanderZug/django_template/pull/49","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderZug%2Fdjango_template/issues/49","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/49/packages"},{"uuid":"2626401305","node_id":"PR_kwDOFAu7ns6ci7QZ","number":22,"state":"open","title":"Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-06-28T18:39:47.000Z","updated_at":"2025-06-28T18:39:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/smilerz/recipes/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/smilerz%2Frecipes/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"}],"issue_packages":[{"old_version":"~=4.1","new_version":"~=4.2","update_type":null,"path":null,"pr_created_at":"2026-04-13T21:48:02.000Z","version_change":"~=4.1 → ~=4.2","issue":{"uuid":"4258079484","node_id":"PR_kwDOCvMLjs7SIH5-","number":84,"state":"closed","title":"[python]: Update uritemplate requirement from ~=4.1 to ~=4.2","user":"dependabot[bot]","labels":["dependencies","d:python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-13T22:39:31.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-13T21:48:02.000Z","updated_at":"2026-04-13T22:39:40.000Z","time_to_close":3089,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[python]: Update","packages":[{"name":"uritemplate","old_version":"~=4.1","new_version":"~=4.2","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [uritemplate](https://github.com/python-hyper/uritemplate) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 - 2021-10-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix setup.cfg metadata to reflect lack of support for Python 2 as desired in\n4.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 - 2021-10-12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations to uritemplate and distribute them for others to use\u003c/li\u003e\n\u003cli\u003eUpdate to a modern documentation theme as well\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0 - 2021-10-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 2.7, 3.4, and 3.5\u003c/li\u003e\n\u003cli\u003eBetter support number-like types as values for variables in a template\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.1 - 2019-12-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Python 3.6, 3.7, and 3.8\u003c/li\u003e\n\u003cli\u003eDrop support for Python 2.6, 3.2, and 3.3\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003eNone\u003c/code\u003e in list argument expansion\u003c/li\u003e\n\u003cli\u003eHandle a list with an empty string appropriately\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0 - 2016-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMatch major version number of uritemplate.py\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0 - 2016-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMerge uritemplate.py into uritemplate\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eChangelog - uritemplate.py\u003c/h1\u003e\n\u003cp\u003e3.0.2 - 2015-08-30\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.0...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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/jwodder/pyrepo/pull/84","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fpyrepo/issues/84","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/84/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2026-03-01T11:12:43.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"4006944640","node_id":"PR_kwDOQ-MND87HHSOe","number":8,"state":"open","title":"chore(deps): Bump the python-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T11:12:43.000Z","updated_at":"2026-03-01T11:12:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-dependencies","update_count":34,"packages":[{"name":"asgiref","old_version":"3.8.1","new_version":"3.11.1","repository_url":"https://github.com/django/asgiref"},{"name":"sqlparse","old_version":"0.5.0","new_version":"0.5.5","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"jinja2","old_version":"3.1.4","new_version":"3.1.6","repository_url":"https://github.com/pallets/jinja"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"certifi","old_version":"2024.2.2","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"idna","old_version":"3.7","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"requests","old_version":"2.32.2","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"urllib3","old_version":"2.2.1","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"amqp","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/celery/py-amqp"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"click-plugins","old_version":"1.1.1","new_version":"1.1.1.2","repository_url":"https://github.com/click-contrib/click-plugins"},{"name":"prompt-toolkit","old_version":"3.0.43","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"tzdata","old_version":"2024.1","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.6.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"cron-descriptor","old_version":"1.4.3","new_version":"2.0.6","repository_url":"https://github.com/Salamek/cron-descriptor"},{"name":"python-crontab","old_version":"3.1.0","new_version":"3.3.0"},{"name":"rcssmin","old_version":"1.1.2","new_version":"1.2.2","repository_url":"https://github.com/ndparker/rcssmin"},{"name":"rjsmin","old_version":"1.2.2","new_version":"1.2.5","repository_url":"https://github.com/ndparker/rjsmin"},{"name":"sendgrid","old_version":"6.11.0","new_version":"6.12.5","repository_url":"https://github.com/sendgrid/sendgrid-python"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"gevent","old_version":"24.11.1","new_version":"25.9.1","repository_url":"https://github.com/gevent/gevent"},{"name":"greenlet","old_version":"3.1.1","new_version":"3.3.2","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"zope-event","old_version":"5.0","new_version":"6.1","repository_url":"https://github.com/zopefoundation/zope.event"},{"name":"zope-interface","old_version":"7.1.1","new_version":"8.2","repository_url":"https://github.com/zopefoundation/zope.interface"},{"name":"sqlalchemy","old_version":"2.0.31","new_version":"2.0.47","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pytailwindcss","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/timonweb/pytailwindcss"},{"name":"watchdog","old_version":"4.0.1","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"legacy-cgi","old_version":"2.6.2","new_version":"2.6.4","repository_url":"https://github.com/jackrosenthal/legacy-cgi"},{"name":"pillow","old_version":"11.1.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"psutil","old_version":"7.0.0","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.11.1` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.0` | `0.5.5` |\n| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.6` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.2.2` | `2026.1.4` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.4` |\n| [idna](https://github.com/kjd/idna) | `3.7` | `3.11` |\n| [requests](https://github.com/psf/requests) | `2.32.2` | `2.32.5` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.1` | `2.6.3` |\n| [amqp](https://github.com/celery/py-amqp) | `5.2.0` | `5.3.1` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [click-plugins](https://github.com/click-contrib/click-plugins) | `1.1.1` | `1.1.1.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.43` | `3.0.52` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [tzdata](https://github.com/python/tzdata) | `2024.1` | `2025.3` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.6.0` |\n| [cron-descriptor](https://github.com/Salamek/cron-descriptor) | `1.4.3` | `2.0.6` |\n| [python-crontab](https://gitlab.com/doctormo/python-crontab) | `3.1.0` | `3.3.0` |\n| [rcssmin](https://github.com/ndparker/rcssmin) | `1.1.2` | `1.2.2` |\n| [rjsmin](https://github.com/ndparker/rjsmin) | `1.2.2` | `1.2.5` |\n| [sendgrid](https://github.com/sendgrid/sendgrid-python) | `6.11.0` | `6.12.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.1.0` |\n| [gevent](https://github.com/gevent/gevent) | `24.11.1` | `25.9.1` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.1.1` | `3.3.2` |\n| [zope-event](https://github.com/zopefoundation/zope.event) | `5.0` | `6.1` |\n| [zope-interface](https://github.com/zopefoundation/zope.interface) | `7.1.1` | `8.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.31` | `2.0.47` |\n| [pytailwindcss](https://github.com/timonweb/pytailwindcss) | `0.2.0` | `0.3.0` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `4.0.1` | `6.0.0` |\n| [legacy-cgi](https://github.com/jackrosenthal/legacy-cgi) | `2.6.2` | `2.6.4` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.1.0` | `12.1.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |\n\n\nUpdates `asgiref` from 3.8.1 to 3.11.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.1 (2026-02-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSECURITY FIX CVE-2025-14550: There was a potential DoS vector for users of\nthe \u003ccode\u003easgiref.wsgi.WsgiToAsgi\u003c/code\u003e adapter. Malicious requests, including an unreasonably\nlarge number of values for the same header, could lead to resource exhaustion\nwhen building the WSGI environment.\u003c/p\u003e\n\u003cp\u003eTo mitigate this, the algorithm is changed to be more efficient, and\n\u003ccode\u003eWsgiToAsgi\u003c/code\u003e gains a new optional \u003ccode\u003eduplicate_header_limit\u003c/code\u003e parameter,\nwhich defaults to 100. This specifies the number of times a single header may\nbe repeated before the request is rejected as malformed.\u003c/p\u003e\n\u003cp\u003eYou may override \u003ccode\u003eduplicate_header_limit\u003c/code\u003e when configuring your application::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eapplication = WsgiToAsgi(wsgi_app, duplicate_header_limit=200)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSet \u003ccode\u003eduplicate_header_limit=None\u003c/code\u003e if you wish to disable this check.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in 3.11.0 in \u003ccode\u003esync_to_async\u003c/code\u003e when wrapping a callable\nwith an attribute named \u003ccode\u003econtext\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/537\"\u003e#537\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.1 (2025-07-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\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/django/asgiref/commit/d97a7339524c89798c510de6c142b663fe40400c\"\u003e\u003ccode\u003ed97a733\u003c/code\u003e\u003c/a\u003e Releasing 3.11.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/a50968a52a50a0bcb0f339ba41e8b52cbf74c604\"\u003e\u003ccode\u003ea50968a\u003c/code\u003e\u003c/a\u003e CVE-2025-14550: Fixed duplicate header handling in WsgiToAsgi.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/0fb85a4352b079ab8191cc593865bd99c987141f\"\u003e\u003ccode\u003e0fb85a4\u003c/code\u003e\u003c/a\u003e Fixed sync_to_async wrapping callables with attribute named \u003ccode\u003econtext\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2b28409ab83b3e4cf6fed9019403b71f8d7d1c51\"\u003e\u003ccode\u003e2b28409\u003c/code\u003e\u003c/a\u003e Updated Hypercorn homepage URL (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlparse` from 0.5.0 to 0.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/andialbrecht/sqlparse/blob/master/CHANGELOG\"\u003esqlparse's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.5.5 (Dec 19, 2025)\u003c/h2\u003e\n\u003cp\u003eBug Fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix DoS protection to raise SQLParseError instead of silently returning None\nwhen grouping limits are exceeded (issue827).\u003c/li\u003e\n\u003cli\u003eFix splitting of BEGIN TRANSACTION statements (issue826).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.5.4 (Nov 28, 2025)\u003c/h2\u003e\n\u003cp\u003eEnhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd type annotations to top-level API functions and include py.typed marker\nfor PEP 561 compliance, enabling type checking with mypy and other tools\n(issue756).\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hook support. sqlparse can now be used as a pre-commit hook\nto automatically format SQL files. The CLI now supports multiple files and\nan \u003ccode\u003e--in-place\u003c/code\u003e flag for in-place editing (issue537).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eATTACH\u003c/code\u003e and \u003ccode\u003eDETACH\u003c/code\u003e to PostgreSQL keywords (pr808).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eINTERSECT\u003c/code\u003e to close keywords in WHERE clause (pr820).\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eREGEXP BINARY\u003c/code\u003e comparison operator (pr817).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug Fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd additional protection against denial of service attacks when parsing\nvery large lists of tuples. This enhances the existing recursion protections\nwith configurable limits for token processing to prevent DoS through\nalgorithmic complexity attacks. The new limits (MAX_GROUPING_DEPTH=100,\nMAX_GROUPING_TOKENS=10000) can be adjusted or disabled (by setting to None)\nif needed for legitimate large SQL statements.\u003c/li\u003e\n\u003cli\u003eRemove shebang from cli.py and remove executable flag (pr818).\u003c/li\u003e\n\u003cli\u003eFix strip_comments not removing all comments when input contains only\ncomments (issue801, pr803 by stropysh).\u003c/li\u003e\n\u003cli\u003eFix splitting statements with IF EXISTS/IF NOT EXISTS inside BEGIN...END\nblocks (issue812).\u003c/li\u003e\n\u003cli\u003eFix splitting on semicolons inside BEGIN...END blocks (issue809).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 0.5.3 (Dez 10, 2024)\u003c/h2\u003e\n\u003cp\u003eBug Fixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis version introduces a more generalized handling of potential denial of\nservice attack (DOS) due to recursion errors for deeply nested statements.\nBrought up and fixed by \u003ca href=\"https://github.com/living180\"\u003e\u003ccode\u003e@​living180\u003c/code\u003e\u003c/a\u003e. Thanks a lot!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/0d240230939bfb3b751b504878b1c7df04a3cab3\"\u003e\u003ccode\u003e0d24023\u003c/code\u003e\u003c/a\u003e Bump version to 0.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/da67ac16b8fa2c5041458bee728c8a914bed2d37\"\u003e\u003ccode\u003eda67ac1\u003c/code\u003e\u003c/a\u003e Enhance DoS protection by raising SQLParseError for exceeded grouping limits ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/5ca50a2ee9b39e9efeea33e01f132d628144fb69\"\u003e\u003ccode\u003e5ca50a2\u003c/code\u003e\u003c/a\u003e Fix splitting of BEGIN TRANSACTION statements (fixes \u003ca href=\"https://redirect.github.com/andialbrecht/sqlparse/issues/826\"\u003e#826\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/acd8e5817b5be5f9b9a7b159c1bacc45179f4e44\"\u003e\u003ccode\u003eacd8e58\u003c/code\u003e\u003c/a\u003e Back to development version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/14e300b165b14d1a7662a071c6481b503d367528\"\u003e\u003ccode\u003e14e300b\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/96a67e286963b2497b1b3f7a1378327af6661998\"\u003e\u003ccode\u003e96a67e2\u003c/code\u003e\u003c/a\u003e Code cleanup.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/1a3bfbd50b82c05d9adcc51bacba059671dc1bc7\"\u003e\u003ccode\u003e1a3bfbd\u003c/code\u003e\u003c/a\u003e Fix handling of semicolons inside BEGIN...END blocks (fixes \u003ca href=\"https://redirect.github.com/andialbrecht/sqlparse/issues/809\"\u003e#809\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/e92a032c81d51a6645b4f8c32470481894818ba0\"\u003e\u003ccode\u003ee92a032\u003c/code\u003e\u003c/a\u003e Fix handling of IF EXISTS statements in BEGIN...END blocks (fixes \u003ca href=\"https://redirect.github.com/andialbrecht/sqlparse/issues/812\"\u003e#812\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/149bebf06c788e93a9b0dbee0e5abbc8e347b8e6\"\u003e\u003ccode\u003e149bebf\u003c/code\u003e\u003c/a\u003e Update Changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andialbrecht/sqlparse/commit/561a67e740e9623cf81ef99f1a6cd94337e24282\"\u003e\u003ccode\u003e561a67e\u003c/code\u003e\u003c/a\u003e Update AUTHORS.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/andialbrecht/sqlparse/compare/0.5.0...0.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jinja2` from 3.1.4 to 3.1.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/jinja/releases\"\u003ejinja2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.6\u003c/h2\u003e\n\u003cp\u003eThis is the Jinja 3.1.6 security release, which fixes security issues 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/Jinja2/3.1.6/\"\u003ehttps://pypi.org/project/Jinja2/3.1.6/\u003c/a\u003e\nChanges: \u003ca href=\"https://jinja.palletsprojects.com/en/stable/changes/#version-3-1-6\"\u003ehttps://jinja.palletsprojects.com/en/stable/changes/#version-3-1-6\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e|attr\u003c/code\u003e filter does not bypass the environment's attribute lookup, allowing the sandbox to apply its checks. \u003ca href=\"https://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7\"\u003ehttps://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.5\u003c/h2\u003e\n\u003cp\u003eThis is the Jinja 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Jinja2/3.1.5/\"\u003ehttps://pypi.org/project/Jinja2/3.1.5/\u003c/a\u003e\nChanges: \u003ca href=\"https://jinja.palletsprojects.com/changes/#version-3-1-5\"\u003ehttps://jinja.palletsprojects.com/changes/#version-3-1-5\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/jinja/milestone/16?closed=1\"\u003ehttps://github.com/pallets/jinja/milestone/16?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe sandboxed environment handles indirect calls to \u003ccode\u003estr.format\u003c/code\u003e, such as by passing a stored reference to a filter that calls its argument. \u003ca href=\"https://github.com/pallets/jinja/security/advisories/GHSA-q2x7-8rv6-6q7h\"\u003eGHSA-q2x7-8rv6-6q7h\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape template name before formatting it into error messages, to avoid issues with names that contain f-string syntax. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1792\"\u003e#1792\u003c/a\u003e, \u003ca href=\"https://github.com/pallets/jinja/security/advisories/GHSA-gmj6-6f8f-6699\"\u003eGHSA-gmj6-6f8f-6699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSandbox does not allow \u003ccode\u003eclear\u003c/code\u003e and \u003ccode\u003epop\u003c/code\u003e on known mutable sequence types. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2032\"\u003e#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCalling sync \u003ccode\u003erender\u003c/code\u003e for an async template uses \u003ccode\u003easyncio.run\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1952\"\u003e#1952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid unclosed \u003ccode\u003eauto_aiter\u003c/code\u003e warnings. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn an \u003ccode\u003eaclose\u003c/code\u003e-able \u003ccode\u003eAsyncGenerator\u003c/code\u003e from \u003ccode\u003eTemplate.generate_async\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving \u003ccode\u003eroot_render_func()\u003c/code\u003e unclosed in \u003ccode\u003eTemplate.generate_async\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving async generators unclosed in blocks, includes and extends. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1960\"\u003e#1960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe runtime uses the correct \u003ccode\u003econcat\u003c/code\u003e function for the current environment when calling block references. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1701\"\u003e#1701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e|unique\u003c/code\u003e async-aware, allowing it to be used after another async-aware filter. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e|int\u003c/code\u003e filter handles \u003ccode\u003eOverflowError\u003c/code\u003e from scientific notation. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1921\"\u003e#1921\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake compiling deterministic for tuple unpacking in a \u003ccode\u003e{% set ... %}\u003c/code\u003e call. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2021\"\u003e#2021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix dunder protocol (\u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e/etc) interaction with \u003ccode\u003eUndefined\u003c/code\u003e objects. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2025\"\u003e#2025\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e support for the internal \u003ccode\u003emissing\u003c/code\u003e object. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2027\"\u003e#2027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEnvironment.overlay(enable_async)\u003c/code\u003e is applied correctly. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2061\"\u003e#2061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe error message from \u003ccode\u003eFileSystemLoader\u003c/code\u003e includes the paths that were searched. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1661\"\u003e#1661\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePackageLoader\u003c/code\u003e shows a clearer error message when the package does not contain the templates directory. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1705\"\u003e#1705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove annotations for methods returning copies. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1880\"\u003e#1880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eurlize\u003c/code\u003e does not add \u003ccode\u003emailto:\u003c/code\u003e to values like \u003ccode\u003e@a@b\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1870\"\u003e#1870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTests decorated with \u003ccode\u003e@pass_context\u003c/code\u003e can be used with the \u003ccode\u003e|select\u003c/code\u003e filter. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1624\"\u003e#1624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eset\u003c/code\u003e for multiple assignment (\u003ccode\u003ea, b = 1, 2\u003c/code\u003e) does not fail when the target is a namespace attribute. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1413\"\u003e#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eset\u003c/code\u003e in all branches of \u003ccode\u003e{% if %}{% elif %}{% else %}\u003c/code\u003e blocks does not cause the variable to be considered initially undefined. \u003ca href=\"https://redirect.github.com/pallets/jinja/issues/1253\"\u003e#1253\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/jinja/blob/main/CHANGES.rst\"\u003ejinja2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.6\u003c/h2\u003e\n\u003cp\u003eReleased 2025-03-05\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003e|attr\u003c/code\u003e filter does not bypass the environment's attribute lookup,\nallowing the sandbox to apply its checks. :ghsa:\u003ccode\u003ecpwx-vrp4-4pq7\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.5\u003c/h2\u003e\n\u003cp\u003eReleased 2024-12-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe sandboxed environment handles indirect calls to \u003ccode\u003estr.format\u003c/code\u003e, such as\nby passing a stored reference to a filter that calls its argument.\n:ghsa:\u003ccode\u003eq2x7-8rv6-6q7h\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eEscape template name before formatting it into error messages, to avoid\nissues with names that contain f-string syntax.\n:issue:\u003ccode\u003e1792\u003c/code\u003e, :ghsa:\u003ccode\u003egmj6-6f8f-6699\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSandbox does not allow \u003ccode\u003eclear\u003c/code\u003e and \u003ccode\u003epop\u003c/code\u003e on known mutable sequence\ntypes. :issue:\u003ccode\u003e2032\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCalling sync \u003ccode\u003erender\u003c/code\u003e for an async template uses \u003ccode\u003easyncio.run\u003c/code\u003e.\n:pr:\u003ccode\u003e1952\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAvoid unclosed \u003ccode\u003eauto_aiter\u003c/code\u003e warnings. :pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReturn an \u003ccode\u003eaclose\u003c/code\u003e-able \u003ccode\u003eAsyncGenerator\u003c/code\u003e from\n\u003ccode\u003eTemplate.generate_async\u003c/code\u003e. :pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving \u003ccode\u003eroot_render_func()\u003c/code\u003e unclosed in\n\u003ccode\u003eTemplate.generate_async\u003c/code\u003e. :pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAvoid leaving async generators unclosed in blocks, includes and extends.\n:pr:\u003ccode\u003e1960\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe runtime uses the correct \u003ccode\u003econcat\u003c/code\u003e function for the current environment\nwhen calling block references. :issue:\u003ccode\u003e1701\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003e|unique\u003c/code\u003e async-aware, allowing it to be used after another\nasync-aware filter. :issue:\u003ccode\u003e1781\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e|int\u003c/code\u003e filter handles \u003ccode\u003eOverflowError\u003c/code\u003e from scientific notation.\n:issue:\u003ccode\u003e1921\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMake compiling deterministic for tuple unpacking in a \u003ccode\u003e{% set ... %}\u003c/code\u003e\ncall. :issue:\u003ccode\u003e2021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix dunder protocol (\u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e/etc) interaction with \u003ccode\u003eUndefined\u003c/code\u003e\nobjects. :issue:\u003ccode\u003e2025\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecopy\u003c/code\u003e/\u003ccode\u003epickle\u003c/code\u003e support for the internal \u003ccode\u003emissing\u003c/code\u003e object.\n:issue:\u003ccode\u003e2027\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEnvironment.overlay(enable_async)\u003c/code\u003e is applied correctly. :pr:\u003ccode\u003e2061\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe error message from \u003ccode\u003eFileSystemLoader\u003c/code\u003e includes the paths that were\nsearched. :issue:\u003ccode\u003e1661\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePackageLoader\u003c/code\u003e shows a clearer error message when the package does not\ncontain the templates directory. :issue:\u003ccode\u003e1705\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eImprove annotations for methods returning copies. :pr:\u003ccode\u003e1880\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eurlize\u003c/code\u003e does not add \u003ccode\u003emailto:\u003c/code\u003e to values like \u003ccode\u003e@a@b\u003c/code\u003e. :pr:\u003ccode\u003e1870\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/15206881c006c79667fe5154fe80c01c65410679\"\u003e\u003ccode\u003e1520688\u003c/code\u003e\u003c/a\u003e release version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/90457bbf33b8662926ae65cdde4c4c32e756e403\"\u003e\u003ccode\u003e90457bb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/065334d1ee5b7210e1a0a93c37238c86858f2af7\"\u003e\u003ccode\u003e065334d\u003c/code\u003e\u003c/a\u003e attr filter uses env.getattr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/033c20015c7ca899ab52eb921bb0f08e6d3dd145\"\u003e\u003ccode\u003e033c200\u003c/code\u003e\u003c/a\u003e start version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/bc68d4efa99c5f77334f0e519628558059ae8c35\"\u003e\u003ccode\u003ebc68d4e\u003c/code\u003e\u003c/a\u003e use global contributing guide (\u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2070\"\u003e#2070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/247de5e0c5062a792eb378e50e13e692885ee486\"\u003e\u003ccode\u003e247de5e\u003c/code\u003e\u003c/a\u003e use global contributing guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/ab8218c7a1b66b62e0ad6b941bd514e3a64a358f\"\u003e\u003ccode\u003eab8218c\u003c/code\u003e\u003c/a\u003e use project advisory link instead of global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/b4ffc8ff299dfd360064bea4cd2f862364601ad2\"\u003e\u003ccode\u003eb4ffc8f\u003c/code\u003e\u003c/a\u003e release version 3.1.5 (\u003ca href=\"https://redirect.github.com/pallets/jinja/issues/2066\"\u003e#2066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/877f6e51be8e1765b06d911cfaa9033775f051d1\"\u003e\u003ccode\u003e877f6e5\u003c/code\u003e\u003c/a\u003e release version 3.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/jinja/commit/8d588592653b052f957b720e1fc93196e06f207f\"\u003e\u003ccode\u003e8d58859\u003c/code\u003e\u003c/a\u003e remove test pypi\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/jinja/compare/3.1.4...3.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markupsafe` from 2.1.5 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/markupsafe/releases\"\u003emarkupsafe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.3\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.3/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\"\u003ehttps://markupsafe.palletsprojects.com/page/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/15?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/15?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/487\"\u003e#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialization PEP 489 for the C extension. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/494\"\u003e#494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/503\"\u003e#503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/505\"\u003e#505\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.2\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.2/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-2\"\u003ehttps://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/14?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/14?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility when \u003ccode\u003e__str__\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e subclass. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/472\"\u003e#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild requires setuptools \u0026gt;= 70.1. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/475\"\u003e#475\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.1\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/MarkupSafe/3.0.1/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-1\"\u003ehttps://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/13?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/13?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAddress compiler warnings that became errors in GCC 14. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix compatibility with proxy objects. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eThis is the MarkupSafe 3.0.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. The 3.0.x branch is now the supported fix branch, the 2.1.x branch will become a tag marking the end of support for that branch. 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/MarkupSafe/3.0.0/\"\u003ehttps://pypi.org/project/MarkupSafe/3.0.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-0\"\u003ehttps://markupsafe.palletsprojects.com/en/stable/changes/#version-3-0-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/markupsafe/milestone/10?closed=1\"\u003ehttps://github.com/pallets/markupsafe/milestone/10?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.13 and its experimental free-threaded build. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/461\"\u003e#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/348\"\u003e#348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003edistutils\u003c/code\u003e imports to \u003ccode\u003esetuptools\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/399\"\u003e#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse deferred evaluation of annotations. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/400\"\u003e#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate signatures for \u003ccode\u003eMarkup\u003c/code\u003e methods to match \u003ccode\u003estr\u003c/code\u003e signatures. Use positional-only arguments. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/400\"\u003e#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome \u003ccode\u003estr\u003c/code\u003e methods on \u003ccode\u003eMarkup\u003c/code\u003e no longer escape their argument: \u003ccode\u003estrip\u003c/code\u003e, \u003ccode\u003elstrip\u003c/code\u003e, \u003ccode\u003erstrip\u003c/code\u003e, \u003ccode\u003eremoveprefix\u003c/code\u003e, \u003ccode\u003eremovesuffix\u003c/code\u003e, \u003ccode\u003epartition\u003c/code\u003e, and \u003ccode\u003erpartition\u003c/code\u003e; \u003ccode\u003ereplace\u003c/code\u003e only escapes its \u003ccode\u003enew\u003c/code\u003e argument. These methods are conceptually linked to search methods such as \u003ccode\u003ein\u003c/code\u003e, \u003ccode\u003efind\u003c/code\u003e, and \u003ccode\u003eindex\u003c/code\u003e, which already do not escape their argument. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/401\"\u003e#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e__version__\u003c/code\u003e attribute is deprecated. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;markupsafe\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/402\"\u003e#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up escaping plain strings by 40%. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/434\"\u003e#434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify speedups implementation. \u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/437\"\u003e#437\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/markupsafe/blob/main/CHANGES.rst\"\u003emarkupsafe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e raises \u003ccode\u003eDeprecationWarning\u003c/code\u003e instead of \u003ccode\u003eUserWarning\u003c/code\u003e.\n:issue:\u003ccode\u003e487\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdopt multi-phase initialisation (:pep:\u003ccode\u003e489\u003c/code\u003e) for the C extension.\n:issue:\u003ccode\u003e494\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Windows ARM64 wheels. :issue:\u003ccode\u003e485\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild Python 3.14 wheels. :issue:\u003ccode\u003e503\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild riscv64 wheels. :issue:\u003ccode\u003e505\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.0.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility when \u003ccode\u003e__str__\u003c/code\u003e returns a \u003ccode\u003estr\u003c/code\u003e subclass. :issue:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eBuild requires setuptools \u0026gt;= 70.1. :issue:\u003ccode\u003e475\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.0.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAddress compiler warnings that became errors in GCC 14. :issue:\u003ccode\u003e466\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix compatibility with proxy objects. :issue:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.0.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.13 and its experimental free-threaded build. :pr:\u003ccode\u003e461\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.8.\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e348\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003edistutils\u003c/code\u003e imports to \u003ccode\u003esetuptools\u003c/code\u003e. :pr:\u003ccode\u003e399\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse deferred evaluation of annotations. :pr:\u003ccode\u003e400\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate signatures for \u003ccode\u003eMarkup\u003c/code\u003e methods to match \u003ccode\u003estr\u003c/code\u003e signatures. Use\npositional-only arguments. :pr:\u003ccode\u003e400\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSome \u003ccode\u003estr\u003c/code\u003e methods on \u003ccode\u003eMarkup\u003c/code\u003e no longer escape their argument:\n\u003ccode\u003estrip\u003c/code\u003e, \u003ccode\u003elstrip\u003c/code\u003e, \u003ccode\u003erstrip\u003c/code\u003e, \u003ccode\u003eremoveprefix\u003c/code\u003e, \u003ccode\u003eremovesuffix\u003c/code\u003e,\n\u003ccode\u003epartition\u003c/code\u003e, and \u003ccode\u003erpartition\u003c/code\u003e; \u003ccode\u003ereplace\u003c/code\u003e only escapes its \u003ccode\u003enew\u003c/code\u003e\nargument. These methods are conceptually linked to search methods such as\n\u003ccode\u003ein\u003c/code\u003e, \u003ccode\u003efind\u003c/code\u003e, and \u003ccode\u003eindex\u003c/code\u003e, which already do not escape their argument.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/markupsafe/commit/297fc8e356e6836a62087949245d09a28e9f1b13\"\u003e\u003ccode\u003e297fc8e\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/7e4e6ce249107c5f27fa6fe890e29da7a8dc8f0c\"\u003e\u003ccode\u003e7e4e6ce\u003c/code\u003e\u003c/a\u003e Free-threading: run with pytest-run-paralell (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/6100b9c0d466495a08d55b33cb172d7b5d8e9aa1\"\u003e\u003ccode\u003e6100b9c\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/c9d5ecfc7eec6f611b19cdc8e1cde1aaa65cb8eb\"\u003e\u003ccode\u003ec9d5ecf\u003c/code\u003e\u003c/a\u003e enable riscv64 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/2f9b33753052e7c6df1464a7c900787d04ae9daf\"\u003e\u003ccode\u003e2f9b337\u003c/code\u003e\u003c/a\u003e tox for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/78d951a9549dee9fc901c55fc79a74a5f01e96fc\"\u003e\u003ccode\u003e78d951a\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/bb6744e392e79611b110c5ba022238eb1b855cc2\"\u003e\u003ccode\u003ebb6744e\u003c/code\u003e\u003c/a\u003e add entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/65c4134ab16a3faccbcac2cba90da0db2b799542\"\u003e\u003ccode\u003e65c4134\u003c/code\u003e\u003c/a\u003e upgrade cibuildwheel, add \u003ccode\u003ecp314\u003c/code\u003e wheels and test on CPython 3.14 (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/504\"\u003e#504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/3a9bd88b84c9edba8b922bb12b84a59feed98788\"\u003e\u003ccode\u003e3a9bd88\u003c/code\u003e\u003c/a\u003e add cp314 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/markupsafe/commit/aafe44d87bd7974bc82af8c4010dea9938441edf\"\u003e\u003ccode\u003eaafe44d\u003c/code\u003e\u003c/a\u003e remove slsa provenance (\u003ca href=\"https://redirect.github.com/pallets/markupsafe/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/markupsafe/compare/2.1.5...3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.2.2 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.02.02...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.3.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.3.2...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.7 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/releases\"\u003eidna's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.11\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.10\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.9\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ev3.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression where IDNAError exception was not being produced for certain inputs.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.5 as it is no longer testable.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements\u003c/li\u003e\n\u003cli\u003eUpdates to package testing using Github actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Hugo van Kemenade for contributions to this release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kjd/idna/compare/v3.7...v3.8\"\u003ehttps://github.com/kjd/idna/compare/v3.7...v3.8\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/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.10 (2024-09-15)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReverted to Unicode 15.1.0 data. Unicode 16 has some significant changes\nto UTS46 processing that will require more work to properly implement.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.9 (2024-09-13)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0\u003c/li\u003e\n\u003cli\u003eDeprecate setup.cfg in favour of pyproject.toml\u003c/li\u003e\n\u003cli\u003eUse ruff for code formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Waket Zheng for contributions to this release.\u003c/p\u003e\n\u003cp\u003e3.8 (2024-08-23)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression where IDNAError exception was not being produced for\ncertain inputs.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.13, drop support for Python 3.5 as it is no\nlonger testable.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements\u003c/li\u003e\n\u003cli\u003eUpdates to package testing using Github actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Hugo van Kemenade for contributions to this release.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.7...v3.11\"\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.2 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\u003ch2\u003ev2.32.3\u003c/h2\u003e\n\u003ch2\u003e2.32.3 (2024-05-29)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug breaking the ability to specify custom SSLContexts in sub-classes of\nHTTPAdapter. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6716\"\u003e#6716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where Requests started failing to run on Python versions compiled\nwithout the \u003ccode\u003essl\u003c/code\u003e module. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6724\"\u003e#6724\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\u003ch2\u003e2.32.3 (2024-05-29)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug breaking the ability to specify custom SSLContexts in sub-classes of\nHTTPAdapter. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6716\"\u003e#6716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where Requests started failing to run on Python versions compiled\nwithout the \u003ccode\u003essl\u003c/code\u003e module. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6724\"\u003e#6724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/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.2...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\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.1 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\u003ch2\u003e2.6.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. 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\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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.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/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly...\n\n_Description has been truncated_","html_url":"https://github.com/DepositGuard/deposit-guard-api/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DepositGuard%2Fdeposit-guard-api/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":"/app","pr_created_at":"2025-10-06T07:18:05.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2889080264","node_id":"PR_kwDOOPmYHc6sM93I","number":45,"state":"open","title":"Bump uritemplate from 4.1.1 to 4.2.0 in /app","user":"dependabot[bot]","labels":[],"assignees":["p3rcypj"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T07:18:05.000Z","updated_at":"2025-10-06T07:18:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/app","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/3dbionotes-community/BWS/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/3dbionotes-community%2FBWS/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":"/backend","pr_created_at":"2025-10-06T00:16:19.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2888495969","node_id":"PR_kwDOLBeFW86sKvNh","number":288,"state":"closed","title":"Build(deps): Bump uritemplate from 4.1.1 to 4.2.0 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-07T06:09:56.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T00:16:19.000Z","updated_at":"2025-10-07T06:09:57.000Z","time_to_close":107617,"merged_at":"2025-10-07T06:09:56.000Z","merged_by":"Ewa-Anna","closed_by":null,"dependency_metadata":{"prefix":"Build(deps): Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/Ewa-Anna/Django-Task-Tracker/pull/288","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ewa-Anna%2FDjango-Task-Tracker/issues/288","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/288/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-09-12T01:25:56.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2820947448","node_id":"PR_kwDOJBTF2c6oJD34","number":454,"state":"open","title":"build(deps): bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-12T01:25:56.000Z","updated_at":"2025-09-12T13:28:49.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/bancolombia/django-DefectDojo/pull/454","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bancolombia%2Fdjango-DefectDojo/issues/454","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/454/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-09-08T12:28:12.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2808064757","node_id":"PR_kwDOFc3u6c6nX6r1","number":169,"state":"open","title":"Bump the python-dependencies group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-08T12:28:12.000Z","updated_at":"2025-09-08T12:28:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":12,"packages":[{"name":"django","old_version":"5.1.7","new_version":"5.2.6","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"django-settings-holder","old_version":"0.2.2","new_version":"0.3.0","repository_url":"https://github.com/MrThearMan/django-settings-holder"},{"name":"cryptography","old_version":"44.0.2","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.8.0","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"pytest-django","old_version":"4.10.0","new_version":"4.11.1","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"tox","old_version":"4.25.0","new_version":"4.30.2","repository_url":"https://github.com/tox-dev/tox"},{"name":"pymdown-extensions","old_version":"10.14.3","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"mkdocs-mermaid2-plugin","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/fralau/mkdocs-mermaid2-plugin"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.7` | `5.2.6` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [django-settings-holder](https://github.com/MrThearMan/django-settings-holder) | `0.2.2` | `0.3.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `45.0.7` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.8.0` | `7.10.6` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.10.0` | `4.11.1` |\n| [tox](https://github.com/tox-dev/tox) | `4.25.0` | `4.30.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.14.3` | `10.16.1` |\n| [mkdocs-mermaid2-plugin](https://github.com/fralau/mkdocs-mermaid2-plugin) | `1.2.1` | `1.2.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n\n\nUpdates `django` from 5.1.7 to 5.2.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/75c4403f07b8ad25893f7832dbe8fc6814b53b2d\"\u003e\u003ccode\u003e75c4403\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.6 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4c044fcc866ec226f612c475950b690b0139d243\"\u003e\u003ccode\u003e4c044fc\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-57833 -- Protected FilteredRelation against SQL inject...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e87ca3d6fa6fb12e06f9c755ecd3ebc3a528e02b\"\u003e\u003ccode\u003ee87ca3d\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.6 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ebec2c93230216f128184f5563215ad7760a7fc5\"\u003e\u003ccode\u003eebec2c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed unused import in docs/ref/models/expressions.txt example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ace59cb83b87a4fdeab29424ea134e78de24fb27\"\u003e\u003ccode\u003eace59cb\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36431\"\u003e#36431\u003c/a\u003e -- Returned tuples for multi-column ForeignObject in val...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16a12a979989565f471ef1a2011bab59f8226f05\"\u003e\u003ccode\u003e16a12a9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35831\"\u003e#35831\u003c/a\u003e -- Documented the model form meta API in model form refe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/51753bc80925ecbe07d944dd22449d5ca867b9d4\"\u003e\u003ccode\u003e51753bc\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.6, 5.1.12, and 4.2.24.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a4864551259f70e044043cf64b6925b816352156\"\u003e\u003ccode\u003ea486455\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected definition of \u0026quot;needsinfo\u0026quot; triage stage in contributing guide.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f8e572e843b037dea9c79bcecd7b9626b2b4ceba\"\u003e\u003ccode\u003ef8e572e\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed reference to flake8 file exclusions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9c9ed6fd7a8399113a18b979c8cd6f04cfbfa30b\"\u003e\u003ccode\u003e9c9ed6f\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35530\"\u003e#35530\u003c/a\u003e -- Corrected deprecation message in auth.alogin().\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.7...5.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-settings-holder` from 0.2.2 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/releases\"\u003edjango-settings-holder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChange the format of \u003ccode\u003eREMOVED_SETTINGS\u003c/code\u003e to be able to determine replacing settings\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ehttps://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/982b4f9f1a2d64afa306c1bf07cac4573c778aaa\"\u003e\u003ccode\u003e982b4f9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/92553f9083c6d18490cbb944058644faab4bfc98\"\u003e\u003ccode\u003e92553f9\u003c/code\u003e\u003c/a\u003e Various fixes and improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/fdd6bba4d55cc14b653b240cec6e4f839d032943\"\u003e\u003ccode\u003efdd6bba\u003c/code\u003e\u003c/a\u003e Add to .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/435d3dcbc1f3357048f4c8b2a4fa11706f82a03d\"\u003e\u003ccode\u003e435d3dc\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/01422a0af4c6920a0362ae51dfde30e3b7e046b3\"\u003e\u003ccode\u003e01422a0\u003c/code\u003e\u003c/a\u003e Update CI test runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/871d93974a248fe93338a3a61d981da092ccc40f\"\u003e\u003ccode\u003e871d939\u003c/code\u003e\u003c/a\u003e Install pytest-django in tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/6b922f785ea774f3ea5ba9fc52d318d0fee61274\"\u003e\u003ccode\u003e6b922f7\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDJANGO_SETTINGS_MODULE\u003c/code\u003e to to env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/9f53de6c87426b3547b9464cf952c7c3d7b2d278\"\u003e\u003ccode\u003e9f53de6\u003c/code\u003e\u003c/a\u003e Add better errors from old and unused settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/c25ebf9227edb9cc3ab4522750515487dea4b7a7\"\u003e\u003ccode\u003ec25ebf9\u003c/code\u003e\u003c/a\u003e Update docs style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/0155ec17eabf5263b949ece7b3f2e4e23a41c84f\"\u003e\u003ccode\u003e0155ec1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 44.0.2 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\nconsidered secure, and is supported only for backwards compatibility.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003cp\u003e45.0.3 - 2025-05-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed decrypting PKCS#8 files encrypted with long salts (this impacts keys\n  encrypted by Bouncy Castle).\n* Fixed decrypting PKCS#8 files encrypted with DES-CBC-MD5. While wildly\n  insecure, this remains prevalent.\n\u003cp\u003e.. _v45-0-2:\u003c/p\u003e\n\u003cp\u003e45.0.2 - 2025-05-17\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed using \u003ccode\u003emypy\u003c/code\u003e with \u003ccode\u003ecryptography\u003c/code\u003e on older versions of Python.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-1:\u003c/p\u003e\n\u003cp\u003e45.0.1 - 2025-05-17\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.0.\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/50384959872c84933b6059c3b697139c8fcdcdea\"\u003e\u003ccode\u003e5038495\u003c/code\u003e\u003c/a\u003e backports for 45.0.3 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12979\"\u003e#12979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f81c07535ddf2d26cb1a27e70a9967ab708b8056\"\u003e\u003ccode\u003ef81c075\u003c/code\u003e\u003c/a\u003e Backport mypy fixes for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12930\"\u003e#12930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/8ea28e0bc724e57433f4f062795d91c0a367e9ad\"\u003e\u003ccode\u003e8ea28e0\u003c/code\u003e\u003c/a\u003e bump for 45.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12922\"\u003e#12922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67840977c95a23d0dcfba154e303014026df0d3e\"\u003e\u003ccode\u003e6784097\u003c/code\u003e\u003c/a\u003e bump for 45 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12886\"\u003e#12886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2d9c1c9cbe650f2888c14476a4b30ef85d3fd2bc\"\u003e\u003ccode\u003e2d9c1c9\u003c/code\u003e\u003c/a\u003e bump MSRV to 1.74 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12919\"\u003e#12919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6c18874cc2e76f173b77c67609cfb4d3495964c3\"\u003e\u003ccode\u003e6c18874\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12918\"\u003e#12918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/44.0.2...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=true\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.0 (2025-06-02)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.8.0 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.8.0...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-django` from 4.10.0 to 4.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-django/releases\"\u003epytest-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\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/pytest-dev/pytest-django/blob/main/docs/changelog.rst\"\u003epytest-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a regression in v4.11.0 for Django \u003ccode\u003eTestCase\u003c/code\u003e tests using the \u003ccode\u003edatabases\u003c/code\u003e class variable (\u003ccode\u003e[#1188](https://github.com/pytest-dev/pytest-django/issues/1188) \u0026lt;https://github.com/pytest-dev/pytest-django/issues/1188\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.11.0 (2025-04-01)\u003c/h2\u003e\n\u003cp\u003eCompatibility\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded official support for Django 5.2 (\u003ccode\u003ePR [#1179](https://github.com/pytest-dev/pytest-django/issues/1179) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1179\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDropped testing on MySQL’s MyISAM storage engine (\u003ccode\u003ePR [#1180](https://github.com/pytest-dev/pytest-django/issues/1180) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1180\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStopped setting up and serializing databases on test session setup when not needed (the database is not requested / \u003ccode\u003eserialized_rollback\u003c/code\u003e is not used).\nOn test databases with large amounts of pre-seeded data, this may remove a delay of a few seconds when running \u003ccode\u003epytest --reuse-db\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe determination of which databases to setup is done by static inspection of the test suite.\nUsing pytest's dynamic features to request db access, such as :meth:\u003ccode\u003erequest.getfixturevalue(\u0026quot;db\u0026quot;) \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e, may throw off this analysis.\nIf you start seeing \u003ccode\u003eDatabaseOperationForbidden\u003c/code\u003e or \u0026quot;unable to open database\u0026quot; errors, this is likely the cause.\nTo fix this, decorate at least one test with the :func:\u003ccode\u003edjango_db \u0026lt;pytest.mark.django_db\u0026gt;\u003c/code\u003e marker with appropriate \u003ccode\u003edatabases\u003c/code\u003e and \u003ccode\u003eserialized_rollback\u003c/code\u003e settings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/5ada9c1596ee9e0624801d553995d98d2e3ccce8\"\u003e\u003ccode\u003e5ada9c1\u003c/code\u003e\u003c/a\u003e Release 4.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/cf3f0bb89be0d741e7c4e10469d0559e86753cc7\"\u003e\u003ccode\u003ecf3f0bb\u003c/code\u003e\u003c/a\u003e fixtures: fixup a regression in previous release for TestCase multi-db support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6d5c272519037031f0b68d78dca44727b860d65e\"\u003e\u003ccode\u003e6d5c272\u003c/code\u003e\u003c/a\u003e Release 4.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/8000db04f07822861331d0df8ef52f9c67eafc00\"\u003e\u003ccode\u003e8000db0\u003c/code\u003e\u003c/a\u003e Only setup and serialize databases as needed by tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6f7fc269f871da0134d9155ca856b29582aa46ce\"\u003e\u003ccode\u003e6f7fc26\u003c/code\u003e\u003c/a\u003e Add optional integration of pytest into django's \u003ccode\u003emanage.py test\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3071a666dce1f60299bf89bd9c268ac7e0ee459d\"\u003e\u003ccode\u003e3071a66\u003c/code\u003e\u003c/a\u003e docs/conf.py: format with ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3f44e50ff326c23a44bf5633423d491a251d8eed\"\u003e\u003ccode\u003e3f44e50\u003c/code\u003e\u003c/a\u003e fixtures: avoid unnecessary closure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/b7328696ad7a5bfc308b60c909972a9166fce8a3\"\u003e\u003ccode\u003eb732869\u003c/code\u003e\u003c/a\u003e Remove testing on MyISAM (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/e362f4c6303b203e5449ed023b353ad81f40a753\"\u003e\u003ccode\u003ee362f4c\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-django/compare/v4.10.0...v4.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.25.0 to 4.30.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.30.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3603\"\u003etox-dev/tox#3603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure automatically provisioned environment is torn down by \u003ca href=\"https://github.com/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3601\"\u003etox-dev/tox#3601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 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/tox-dev/tox/pull/3604\"\u003etox-dev/tox#3604\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.1...4.30.2\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.1...4.30.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Tox from hanging with \u003ccode\u003e--installpkg\u003c/code\u003e sdist due to orphaned build backend by \u003ca href=\"https://github.com/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3530\"\u003etox-dev/tox#3530\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/vytas7\"\u003e\u003ccode\u003e@​vytas7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3530\"\u003etox-dev/tox#3530\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.30.0...4.30.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.30.0...4.30.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.30.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass through \u003ccode\u003eCI\u003c/code\u003e as \u003ccode\u003e__TOX_ENVIRONMENT_VARIABLE_ORIGINAL_CI\u003c/code\u003e by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3592\"\u003etox-dev/tox#3592\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/tox-dev/tox/pull/3596\"\u003etox-dev/tox#3596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the built docs HTML path hint in \u003ccode\u003etox.toml\u003c/code\u003e by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3594\"\u003etox-dev/tox#3594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u0026quot;version added\u0026quot; note for \u003ccode\u003etox_extend_envs\u003c/code\u003e by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3595\"\u003etox-dev/tox#3595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: provide clear messaging about config file loading by \u003ca href=\"https://github.com/ssbarnea\"\u003e\u003ccode\u003e@​ssbarnea\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3578\"\u003etox-dev/tox#3578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003etox_extend_envs\u003c/code\u003e list can be read twice by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3598\"\u003etox-dev/tox#3598\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/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3592\"\u003etox-dev/tox#3592\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.29.0...4.30.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.29.0...4.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.29.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDocs: environment variables contain strings by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3575\"\u003etox-dev/tox#3575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐍 Fix sys_platform Fixture Leakage breaking the CI by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3589\"\u003etox-dev/tox#3589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose a new \u003ccode\u003etox_extend_envs\u003c/code\u003e hook in plugins API by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3591\"\u003etox-dev/tox#3591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.4...4.29.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.4...4.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.30.2 (2025-09-04)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.30.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Previously, when tox ran in an automatically provisioned environment, it could hang waiting for a PEP 517 build backend\n  if used in conjunction with the ``--installpkg`` option. This has been fixed by properly tearing down the automatically\n  provisioned environment after the tests.\n  - by :user:`vytas7` (:issue:`3600`)\n\u003ch2\u003ev4.30.1 (2025-09-03)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.30.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent tox from hanging upon exit due to orphaned build threads and subprocesses when the \u003ccode\u003e--installpkg\u003c/code\u003e option is\nused with \u003cem\u003esdist\u003c/em\u003e.\n\u003cul\u003e\n\u003cli\u003eby :user:\u003ccode\u003evytas7\u003c/code\u003e (:issue:\u003ccode\u003e3530\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.30.0 (2025-09-03)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.30.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add ``__TOX_ENVIRONMENT_VARIABLE_ORIGINAL_CI``, which passes through the ``CI`` variable if present. This is intended for use by other libraries to detect if tox is running under CI. (:issue:`3442`)\n\u003cp\u003eBugfixes - 4.30.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMakes the error message more clear when pyproject.toml file cannot be loaded\nor is missing expected keys. (:issue:\u003ccode\u003e3578\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe :func:\u003ccode\u003etox_extend_envs() hook \u0026lt;tox.plugin.spec.tox_extend_envs\u0026gt;\u003c/code\u003e\nrecently added in :pull:\u003ccode\u003e3591\u003c/code\u003e turned out to not work well with\n\u003ccode\u003etox run\u003c/code\u003e. It was fixed internally, not to exhaust the underlying\niterator on the first use.\u003c/p\u003e\n\u003cp\u003e-- by :user:\u003ccode\u003ewebknjaz\u003c/code\u003e (:issue:\u003ccode\u003e3598\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.29.0 (2025-08-29)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.29.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- A new tox life cycle event is now exposed for use via :doc:`Plugins\n  API \u0026lt;/plugins\u0026gt;` -- by :user:`webknjaz`.\n\u003cp\u003eThe corresponding hook point is :func:\u003ccode\u003etox_extend_envs \u0026amp;lt;tox.plugin.spec.tox_extend_envs\u0026amp;gt;\u003c/code\u003e. It allows plugin authors to\ndeclare ephemeral environments that they can then populate through\nthe in-memory configuration loader interface.\u003c/p\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/5e0784a7f5ea5f89c089351c9a7e23863bd131b9\"\u003e\u003ccode\u003e5e0784a\u003c/code\u003e\u003c/a\u003e release 4.30.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/64e8a34883369a80350b311ceb3550f30931cd51\"\u003e\u003ccode\u003e64e8a34\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish in /.github/workflows (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3604\"\u003e#3604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/723008808899afec3c1aa7412bd7771694d66f5a\"\u003e\u003ccode\u003e7230088\u003c/code\u003e\u003c/a\u003e Ensure automatically provisioned environment is torn down (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/2c31dbcbfc4d28944b4116b86a70420a815a012a\"\u003e\u003ccode\u003e2c31dbc\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3603\"\u003e#3603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b33a43c270eb87e61833b7ed934b401d23aeded5\"\u003e\u003ccode\u003eb33a43c\u003c/code\u003e\u003c/a\u003e release 4.30.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/9ea1c3223aef5d919dcd44baf0bf2de4aedbf7f7\"\u003e\u003ccode\u003e9ea1c32\u003c/code\u003e\u003c/a\u003e Prevent Tox from hanging with \u003ccode\u003e--installpkg\u003c/code\u003e sdist due to orphaned build back...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/aa90652cd6b451ca1cf75144467b23d32daab448\"\u003e\u003ccode\u003eaa90652\u003c/code\u003e\u003c/a\u003e release 4.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/48fecab4a8691674448c39ab7cde6531038fb308\"\u003e\u003ccode\u003e48fecab\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003etox_extend_envs\u003c/code\u003e list can be read twice (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3598\"\u003e#3598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/0b8f66f259f8d0ab413d5041834073f1f9066231\"\u003e\u003ccode\u003e0b8f66f\u003c/code\u003e\u003c/a\u003e fix: provide clear messaging about config file loading (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3578\"\u003e#3578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/adf0997b760ecd2a877e0f42f01da996911f6f18\"\u003e\u003ccode\u003eadf0997\u003c/code\u003e\u003c/a\u003e Add a \u0026quot;version added\u0026quot; note for \u003ccode\u003etox_extend_envs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3595\"\u003e#3595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.25.0...4.30.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.14.3 to 10.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.6.1\u003c/h2\u003e\n\u003ch2\u003e10.16.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Inefficient regular expression pattern for figure caption numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add early support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Snippets: Added \u003ccode\u003emax_retries\u003c/code\u003e and \u003ccode\u003ebackoff_retries\u003c/code\u003e options to configure new retry logic for HTTP 429\nerrors (Too Many Requests client error).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Caption: Prefix templates are now preserved exactly as specified allowing the insertion of HTML tags if\ndesired.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Caption: Fix issue where manual numbers in auto were not respected appropriately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: SuperFences: Add \u003ccode\u003erelaxed_headers\u003c/code\u003e option which can tolerate bad content in the fenced code header. When\nenabled, code blocks with bad content in the header will likely still convert into code blocks, often respecting\nthe specified language.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add type hints to the Blocks interface and a few additional files.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Fix some corner cases of nested blocks with lists.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Tab and Tabbed: Fix a case where tabs could fail if \u003ccode\u003ecombine_header_slug\u003c/code\u003e was enabled and there was no\nheader.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/b50d15a56850ed1408a284bba81cc019c6bd72e8\"\u003e\u003ccode\u003eb50d15a\u003c/code\u003e\u003c/a\u003e Caption pattern should match a literal dot (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/f64422f87c05031a8c8d62b1988bf76e8f65f27f\"\u003e\u003ccode\u003ef64422f\u003c/code\u003e\u003c/a\u003e Update copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9edb92606fc813e983fce3187862a4f28bb15886\"\u003e\u003ccode\u003e9edb926\u003c/code\u003e\u003c/a\u003e Use Trusted Publisher\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d3d4f990463e50b1ba1e20830832285d92990c7\"\u003e\u003ccode\u003e7d3d4f9\u003c/code\u003e\u003c/a\u003e Add early support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/beb841e6f968b81403166d685b083fe2bde84bbc\"\u003e\u003ccode\u003ebeb841e\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/620d7fded457a0b5317019fa461a27f484a0d3d4\"\u003e\u003ccode\u003e620d7fd\u003c/code\u003e\u003c/a\u003e Docs: update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a49f32aa4ac91d97c7c10c9abe7f654b5ec802e5\"\u003e\u003ccode\u003ea49f32a\u003c/code\u003e\u003c/a\u003e Refactor for mypy issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/52a481b5591879f49baffecf4275f351d27a3759\"\u003e\u003ccode\u003e52a481b\u003c/code\u003e\u003c/a\u003e Docs: update JS dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2a1828accdc2371d97610fbbb574dd878e090b54\"\u003e\u003ccode\u003e2a1828a\u003c/code\u003e\u003c/a\u003e Allow raw HTML in caption prefix (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/fbf4bf22da3bc864f24b4ee6a2c05b145fb6c304\"\u003e\u003ccode\u003efbf4bf2\u003c/code\u003e\u003c/a\u003e Fix issue where manual captions in auto were not respected properly (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.14.3...10.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-mermaid2-plugin` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/blob/master/CHANGELOG.md\"\u003emkdocs-mermaid2-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2, 2025-08-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed: deprecation warning by BeautifulSoup (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/119\"\u003e#119\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/120\"\u003e#120\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/fralau/mkdocs-mermaid2-plugin/commit/4959ee4e89459b04c2404c7d742f41b2dd4f9fcc\"\u003e\u003ccode\u003e4959ee4\u003c/code\u003e\u003c/a\u003e Bump version for fix of \u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/119\"\u003e#119\u003c/a\u003e (Deprecation warning)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0c12a8b1542bfc6ef598eb5ef1fb8ba0733e22e4\"\u003e\u003ccode\u003e0c12a8b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/119\"\u003e#119\u003c/a\u003e from omarirfa/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/fbfcc320a02cb1f0b9463d49d3672f356dc7ddb2\"\u003e\u003ccode\u003efbfcc32\u003c/code\u003e\u003c/a\u003e bug: fixing replacewith depreciation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/0511d01ede2e92ec9c79ee7d82c1b37bc5589fca\"\u003e\u003ccode\u003e0511d01\u003c/code\u003e\u003c/a\u003e Minor updates to the Debug section, for \u003ccode\u003eextra_javascript\u003c/code\u003e(\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/111\"\u003e#111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/commit/b6f04e8fab9a9029beda30e63629aef003c8fd01\"\u003e\u003ccode\u003eb6f04e8\u003c/code\u003e\u003c/a\u003e Update documentation to clarify \u003ccode\u003eextra_javascript\u003c/code\u003e as failsafe (\u003ca href=\"https://redirect.github.com/fralau/mkdocs-mermaid2-plugin/issues/111\"\u003e#111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/fralau/mkdocs-mermaid2-plugin/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.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/MrThearMan/jwt-email-auth/pull/169","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrThearMan%2Fjwt-email-auth/issues/169","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/169/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-09-01T23:26:19.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2790891184","node_id":"PR_kwDOGLHsfc6mWZ6w","number":4598,"state":"closed","title":"Bump the ofe-minor-and-patch-updates group across 1 directory with 53 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2025-09-03T13:08:32.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-01T23:26:19.000Z","updated_at":"2025-09-02T05:28:11.000Z","time_to_close":135733,"merged_at":"2025-09-03T13:08:32.000Z","merged_by":"siddhartha-quad","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":53,"packages":[{"name":"argcomplete","old_version":"3.6.1","new_version":"3.6.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"asgiref","old_version":"3.8.1","new_version":"3.9.1","repository_url":"https://github.com/django/asgiref"},{"name":"astroid","old_version":"3.3.9","new_version":"3.3.11","repository_url":"https://github.com/pylint-dev/astroid"},{"name":"certifi","old_version":"2025.1.31","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.8","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"crispy-bootstrap5","old_version":"2025.4","new_version":"2025.6","repository_url":"https://github.com/django-crispy-forms/crispy-bootstrap5"},{"name":"cryptography","old_version":"45.0.3","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"dill","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"django","old_version":"5.1.10","new_version":"5.2.5","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.6.0","new_version":"65.11.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-crispy-forms","old_version":"2.3","new_version":"2.4","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.25.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.166.0","new_version":"2.179.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.40.3","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-artifact-registry","old_version":"1.15.2","new_version":"1.16.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-secret-manager","old_version":"2.22.1","new_version":"2.24.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-build","old_version":"3.31.0","new_version":"3.31.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-billing","old_version":"1.16.2","new_version":"1.16.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.31.1","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-compute","old_version":"1.29.0","new_version":"1.35.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.1.1","new_version":"3.3.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.5.0","new_version":"1.7.1","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"googleapis-common-protos","old_version":"1.69.2","new_version":"1.70.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.69.0","new_version":"1.74.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.69.0","new_version":"1.74.0"},{"name":"httplib2","old_version":"0.22.0","new_version":"0.30.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"identify","old_version":"2.6.9","new_version":"2.6.13","repository_url":"https://github.com/pre-commit/identify"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"lazy-object-proxy","old_version":"1.10.0","new_version":"1.12.0","repository_url":"https://github.com/ionelmc/python-lazy-object-proxy"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.2","repository_url":"https://github.com/Instagram/LibCST"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"oauthlib","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/oauthlib/oauthlib"},{"name":"path","old_version":"17.1.0","new_version":"17.1.1","repository_url":"https://github.com/jaraco/path"},{"name":"platformdirs","old_version":"4.3.7","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pylint","old_version":"3.3.6","new_version":"3.3.8","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pylint-plugin-utils","old_version":"0.8.2","new_version":"0.9.0","repository_url":"https://github.com/PyCQA/pylint-plugin-utils"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.24.0","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"rsa","old_version":"4.9","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.18.15"},{"name":"setuptools-rust","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/PyO3/setuptools-rust"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"uvicorn","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/encode/uvicorn"},{"name":"virtualenv","old_version":"20.30.0","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"wrapt","old_version":"1.17.2","new_version":"1.17.3","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"zipp","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group with 53 updates in the /community/front-end/ofe directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.1` | `3.6.2` |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.9.1` |\n| [astroid](https://github.com/pylint-dev/astroid) | `3.3.9` | `3.3.11` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.1.31` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.2.1` |\n| [crispy-bootstrap5](https://github.com/django-crispy-forms/crispy-bootstrap5) | `2025.4` | `2025.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.3` | `45.0.7` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.9` | `0.4.0` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [django](https://github.com/django/django) | `5.1.10` | `5.2.5` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.6.0` | `65.11.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.3` | `2.4` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.24.2` | `2.25.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.166.0` | `2.179.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.40.3` |\n| [google-cloud-artifact-registry](https://github.com/googleapis/google-cloud-python) | `1.15.2` | `1.16.1` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.22.1` | `2.24.0` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.0` | `3.31.3` |\n| [google-cloud-billing](https://github.com/googleapis/google-cloud-python) | `1.16.2` | `1.16.3` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.29.0` | `2.31.1` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.29.0` | `1.35.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.1` | `3.3.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.5.0` | `1.7.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.69.2` | `1.70.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.69.0` | `1.74.0` |\n| [grpcio-status](https://grpc.io) | `1.69.0` | `1.74.0` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.22.0` | `0.30.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.9` | `2.6.13` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.1` |\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) | `1.10.0` | `1.12.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.2` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [oauthlib](https://github.com/oauthlib/oauthlib) | `3.2.2` | `3.3.1` |\n| [path](https://github.com/jaraco/path) | `17.1.0` | `17.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.7` | `4.4.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [pylint](https://github.com/pylint-dev/pylint) | `3.3.6` | `3.3.8` |\n| [pylint-plugin-utils](https://github.com/PyCQA/pylint-plugin-utils) | `0.8.2` | `0.9.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.24.0` | `0.27.1` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.9` | `4.9.1` |\n| ruamel-yaml | `0.18.10` | `0.18.15` |\n| [setuptools-rust](https://github.com/PyO3/setuptools-rust) | `1.11.0` | `1.12.0` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [uvicorn](https://github.com/encode/uvicorn) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.30.0` | `20.34.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.2` | `1.17.3` |\n| [zipp](https://github.com/jaraco/zipp) | `3.21.0` | `3.23.0` |\n\n\nUpdates `argcomplete` from 3.6.1 to 3.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\nThis reverts a regression introduced in zsh tab completion configurations utilizing multiple matchers.\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/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.6.2 (2025-04-02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRevert “zsh: skip repeat Python runs in the same completion run” This\nreverts a regression introduced in zsh tab completion configurations\nutilizing multiple matchers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a0143a96b4f26f363cfb5165e93c86c885e0ad12\"\u003e\u003ccode\u003ea0143a9\u003c/code\u003e\u003c/a\u003e v3.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/2e5d43e189a7074c7b663978ba68a3ab0fa21f77\"\u003e\u003ccode\u003e2e5d43e\u003c/code\u003e\u003c/a\u003e Reformat file with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/83d36c56739a40126f8cb70413c64ac1f3264ea7\"\u003e\u003ccode\u003e83d36c5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.1...v3.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.8.1 to 3.9.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.1 (2025-07-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip CPython specific garbage collection test on pypy. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrops support for (end-of-life) Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes an error with conflicting kwargs between AsyncToSync and the wrapped\nfunction. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/471\"\u003e#471\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes Local isolation between asyncio Tasks. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/478\"\u003e#478\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a deadlock in CurrentThreadExecutor with nested async_to_sync →\nsync_to_async → async_to_sync → create_task calls. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe ApplicationCommunicator testing utility will now return the task result\nif it's already completed on send_input and receive_nothing. You may need to\ncatch (e.g.) the asyncio.exceptions.CancelledError if sending messages to\nalready finished consumers in your tests. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fbe9506df140a437921a01ea824dbe51d8c38c24\"\u003e\u003ccode\u003efbe9506\u003c/code\u003e\u003c/a\u003e Releasing 3.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fae2ab10f12858b529b01e6e812abac6aa1f6128\"\u003e\u003ccode\u003efae2ab1\u003c/code\u003e\u003c/a\u003e Fixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f43e1120286d2b7537547603a1534569e8d8f1a6\"\u003e\u003ccode\u003ef43e112\u003c/code\u003e\u003c/a\u003e Adjust changelog for ApplicationCommunicator updates. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f22bea26ff268c26253e827b127be76b61a612cf\"\u003e\u003ccode\u003ef22bea2\u003c/code\u003e\u003c/a\u003e Skip garbage collection test on PyPy (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fc0599e122edcde0f84962b219ea591428124106\"\u003e\u003ccode\u003efc0599e\u003c/code\u003e\u003c/a\u003e Releasing 3.9.0. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b126e0c01144bd980937b658dd6eaf236150fe63\"\u003e\u003ccode\u003eb126e0c\u003c/code\u003e\u003c/a\u003e Removed unneeded typing workaround (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ef1678a65b891ef838525d1f3a658875acb9018a\"\u003e\u003ccode\u003eef1678a\u003c/code\u003e\u003c/a\u003e Migrate work for finished \u003ccode\u003eCurrentThreadExecutor\u003c/code\u003e to previous executor (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/37870f58963c38617a910743ba69311ec8e4e0d0\"\u003e\u003ccode\u003e37870f5\u003c/code\u003e\u003c/a\u003e Fixed reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ec6f666621407674e80d039bf235ba2662193bdb\"\u003e\u003ccode\u003eec6f666\u003c/code\u003e\u003c/a\u003e Add MicroPie framework to \u003ccode\u003eimplementations.rst\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/5eff04dce46b74172a1d6d1c5b02409f0afe33b6\"\u003e\u003ccode\u003e5eff04d\u003c/code\u003e\u003c/a\u003e Lazily bind ApplicationCommunicator to event loop (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astroid` from 3.3.9 to 3.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/releases\"\u003eastroid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/blob/main/ChangeLog\"\u003eastroid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.11?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-07-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.10?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/fbea510b9e7604be0afea5b25ca6b51a73f09870\"\u003e\u003ccode\u003efbea510\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.11, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2777\"\u003e#2777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/bf3977c3793be0e2111220864e02f8040fcaeb7f\"\u003e\u003ccode\u003ebf3977c\u003c/code\u003e\u003c/a\u003e Include subclasses of standard property classes as property decorators (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2735\"\u003e#2735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/18f96261f4736a10fc7b6824c4d0fed922b05c4b\"\u003e\u003ccode\u003e18f9626\u003c/code\u003e\u003c/a\u003e Use custom Github App to authenticate backport job (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2751\"\u003e#2751\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2752\"\u003e#2752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c1d9c73fd724dd1dd7ec64195f93e86be32414c6\"\u003e\u003ccode\u003ec1d9c73\u003c/code\u003e\u003c/a\u003e Improve backport job permissions (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2750\"\u003e#2750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/b1adb1c1b58e1f7a13751bc52c33d124364633be\"\u003e\u003ccode\u003eb1adb1c\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Initial fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2747\"\u003e#2747\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/0aaf2131e8694c0009781b4144685d1c84d1f36a\"\u003e\u003ccode\u003e0aaf213\u003c/code\u003e\u003c/a\u003e [fix] Prevent crash on slice decorator for 'six' decorated function (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2738\"\u003e#2738\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c8bd28a53b919f1c0be4f71f3c6de3d26073d520\"\u003e\u003ccode\u003ec8bd28a\u003c/code\u003e\u003c/a\u003e [fix] Crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/a3623682a5e1e07f4f331b6b0a5f77e257d81b96\"\u003e\u003ccode\u003ea362368\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.10, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/d87efc6185573da387df4e5fbe5a8c3cca185487\"\u003e\u003ccode\u003ed87efc6\u003c/code\u003e\u003c/a\u003e Pick correct file if two files with the same name but with different extensio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/e29d7267a0053766415f7f45ffa839c335776a6b\"\u003e\u003ccode\u003ee29d726\u003c/code\u003e\u003c/a\u003e [setuptools] Upgrade the license handling for latest setuptools\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.1.31 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.01.31...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.1 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.8 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.8...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `crispy-bootstrap5` from 2025.4 to 2025.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/releases\"\u003ecrispy-bootstrap5's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/blob/main/CHANGELOG.md\"\u003ecrispy-bootstrap5's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6 (2025-06-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/c9578e9291e3c77998e7f8ec6c089719685ed678\"\u003e\u003ccode\u003ec9578e9\u003c/code\u003e\u003c/a\u003e 2025.6 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/a6346ecc8c6c7936bfda5d8c290b3cbb332f9009\"\u003e\u003ccode\u003ea6346ec\u003c/code\u003e\u003c/a\u003e Make legend font-size the same as label font-size (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/compare/2025.4...2025.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.3 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/45.0.7/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\nconsidered secure, and is supported only for backwards compatibility.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.3...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dill` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/16eb90b0895fa60c751bc4bdc18dbdf9a6b31a2e\"\u003e\u003ccode\u003e16eb90b\u003c/code\u003e\u003c/a\u003e tag: 0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/cd7a5a8242a7039eb0c13320843dbb170b3b88ab\"\u003e\u003ccode\u003ecd7a5a8\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.5 to 3.1.6 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/0717bd1efe2ddd487762a472cb63253a504a760b\"\u003e\u003ccode\u003e0717bd1\u003c/code\u003e\u003c/a\u003e move travis build of 3.9 to focal (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/599265e0a0cec406e245808105b63987077f53f2\"\u003e\u003ccode\u003e599265e\u003c/code\u003e\u003c/a\u003e fix CodeType support for PyPy3.11 7.3.19+ (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/acc49cfe97e333a8133280b909f09c723cc0fec5\"\u003e\u003ccode\u003eacc49cf\u003c/code\u003e\u003c/a\u003e update docs requirements; CI for pypy3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a3d129f9c8aceb856a7e50277af4b7fef6ab9202\"\u003e\u003ccode\u003ea3d129f\u003c/code\u003e\u003c/a\u003e support pypy-3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/7f678e733d7eca682dd367dd68231451141b27ea\"\u003e\u003ccode\u003e7f678e7\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.5 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/5adb4445d630ba067329246e9966b420ccbfbb4d\"\u003e\u003ccode\u003e5adb444\u003c/code\u003e\u003c/a\u003e updated copyright for 2025 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/696\"\u003e#696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/c8b8c5775e572309a5ea787d9f897facfc9280d5\"\u003e\u003ccode\u003ec8b8c57\u003c/code\u003e\u003c/a\u003e fix typo in requirements (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/e3c85c82c76dfa5abb476949279f5709395f0547\"\u003e\u003ccode\u003ee3c85c8\u003c/code\u003e\u003c/a\u003e Bump starlette from 0.37.2 to 0.40.0 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/uqfoundation/dill/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.10 to 5.2.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3b1107a4955bdd994908efb4c6e1d03c281e69f\"\u003e\u003ccode\u003ea3b1107\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0489f54e8b047374f0b83fe77695976edcf8c118\"\u003e\u003ccode\u003e0489f54\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9c7d4b703759e9903dd92899dd8ac662007baf3\"\u003e\u003ccode\u003ea9c7d4b\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36485\"\u003e#36485\u003c/a\u003e -- Grouped docs checks under a unified make check target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ad6d43cd9ae05d3575f9e7bb1cb488bce5d905d\"\u003e\u003ccode\u003e5ad6d43\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/34140\"\u003e#34140\u003c/a\u003e -- Added dedicated code block formatting section in docs/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/bdc3f9e3508fc144c5e9710f5b672cc41f6e742d\"\u003e\u003ccode\u003ebdc3f9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36530\"\u003e#36530\u003c/a\u003e -- Extended fields.E347 to check for ManyToManyField inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f01ceae477a71a1c244c332e1b53a9499e484874\"\u003e\u003ccode\u003ef01ceae\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36535\"\u003e#36535\u003c/a\u003e -- Ensured compatibility with docutils 0.19 through 0.22.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca58ce3d0d254752caa19e96055f54feadd5582\"\u003e\u003ccode\u003e5ca58ce\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected assertNumQueries() example in docs/topics/testing/tools.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b3bb7230e1225861b5c1f08931f2d82c2b04133a\"\u003e\u003ccode\u003eb3bb723\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/34871\"\u003e#34871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36518\"\u003e#36518\u003c/a\u003e -- Implemented unresolved lookups expression rep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e5ccb69bc3da407ab2b0477c0cc5db27c7207225\"\u003e\u003ccode\u003ee5ccb69\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36198\"\u003e#36198\u003c/a\u003e -- Implemented unresolved transform expression replacement.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5aefd005fc3dd35be6e9e4a24f9c2bc92b69df3b\"\u003e\u003ccode\u003e5aefd00\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.10...5.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.6.0 to 65.11.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.3 to 2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4 (2025-04-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/b3f1d2255be531bba4acb67311a5d3c00dbd9973\"\u003e\u003ccode\u003eb3f1d22\u003c/code\u003e\u003c/a\u003e 2.4 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ac2479e16f48c265897acd2ce2455af6ad9840ef\"\u003e\u003ccode\u003eac2479e\u003c/code\u003e\u003c/a\u003e Update GitHub action versions in workflows. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/bb7030a9a07f327bc725a62341ae0e14526f82e6\"\u003e\u003ccode\u003ebb7030a\u003c/code\u003e\u003c/a\u003e Confirmed Django 5.2 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/a4fb3c7be1129cbd0de7895413cdb926fbb83d80\"\u003e\u003ccode\u003ea4fb3c7\u003c/code\u003e\u003c/a\u003e Pre-commit autoupdate. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1404\"\u003e#1404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7cc89a1a298515b3e934312f8aa1b21617c63a8\"\u003e\u003ccode\u003ee7cc89a\u003c/code\u003e\u003c/a\u003e Added Python 3.13 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1403\"\u003e#1403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.3...2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4598","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4598","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4598/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-08-29T00:08:41.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2783272997","node_id":"PR_kwDOAxHU6M6l5WAl","number":8919,"state":"open","title":"Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependency update"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-29T00:08:41.000Z","updated_at":"2025-08-29T00:08:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/Harmon758/Harmonbot/pull/8919","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Harmon758%2FHarmonbot/issues/8919","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8919/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-08-11T17:26:55.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2736306028","node_id":"PR_kwDOFc3u6c6jGLds","number":168,"state":"closed","title":"Bump the python-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-08T12:11:37.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-11T17:26:55.000Z","updated_at":"2025-09-08T12:11:37.000Z","time_to_close":2400282,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":11,"packages":[{"name":"django","old_version":"5.1.7","new_version":"5.2.5","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"django-settings-holder","old_version":"0.2.2","new_version":"0.3.0","repository_url":"https://github.com/MrThearMan/django-settings-holder"},{"name":"cryptography","old_version":"44.0.2","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"coverage","old_version":"7.8.0","new_version":"7.10.3","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"pytest-django","old_version":"4.10.0","new_version":"4.11.1","repository_url":"https://github.com/pytest-dev/pytest-django"},{"name":"tox","old_version":"4.25.0","new_version":"4.28.4","repository_url":"https://github.com/tox-dev/tox"},{"name":"pymdown-extensions","old_version":"10.14.3","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.1.7` | `5.2.5` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [django-settings-holder](https://github.com/MrThearMan/django-settings-holder) | `0.2.2` | `0.3.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `45.0.6` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.8.0` | `7.10.3` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.10.0` | `4.11.1` |\n| [tox](https://github.com/tox-dev/tox) | `4.25.0` | `4.28.4` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.14.3` | `10.16.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n\n\nUpdates `django` from 5.1.7 to 5.2.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3b1107a4955bdd994908efb4c6e1d03c281e69f\"\u003e\u003ccode\u003ea3b1107\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0489f54e8b047374f0b83fe77695976edcf8c118\"\u003e\u003ccode\u003e0489f54\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9c7d4b703759e9903dd92899dd8ac662007baf3\"\u003e\u003ccode\u003ea9c7d4b\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36485\"\u003e#36485\u003c/a\u003e -- Grouped docs checks under a unified make check target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ad6d43cd9ae05d3575f9e7bb1cb488bce5d905d\"\u003e\u003ccode\u003e5ad6d43\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/34140\"\u003e#34140\u003c/a\u003e -- Added dedicated code block formatting section in docs/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/bdc3f9e3508fc144c5e9710f5b672cc41f6e742d\"\u003e\u003ccode\u003ebdc3f9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36530\"\u003e#36530\u003c/a\u003e -- Extended fields.E347 to check for ManyToManyField inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f01ceae477a71a1c244c332e1b53a9499e484874\"\u003e\u003ccode\u003ef01ceae\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36535\"\u003e#36535\u003c/a\u003e -- Ensured compatibility with docutils 0.19 through 0.22.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca58ce3d0d254752caa19e96055f54feadd5582\"\u003e\u003ccode\u003e5ca58ce\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected assertNumQueries() example in docs/topics/testing/tools.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b3bb7230e1225861b5c1f08931f2d82c2b04133a\"\u003e\u003ccode\u003eb3bb723\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/34871\"\u003e#34871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36518\"\u003e#36518\u003c/a\u003e -- Implemented unresolved lookups expression rep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e5ccb69bc3da407ab2b0477c0cc5db27c7207225\"\u003e\u003ccode\u003ee5ccb69\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36198\"\u003e#36198\u003c/a\u003e -- Implemented unresolved transform expression replacement.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5aefd005fc3dd35be6e9e4a24f9c2bc92b69df3b\"\u003e\u003ccode\u003e5aefd00\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.7...5.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-settings-holder` from 0.2.2 to 0.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/releases\"\u003edjango-settings-holder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChange the format of \u003ccode\u003eREMOVED_SETTINGS\u003c/code\u003e to be able to determine replacing settings\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ehttps://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/982b4f9f1a2d64afa306c1bf07cac4573c778aaa\"\u003e\u003ccode\u003e982b4f9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/92553f9083c6d18490cbb944058644faab4bfc98\"\u003e\u003ccode\u003e92553f9\u003c/code\u003e\u003c/a\u003e Various fixes and improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/fdd6bba4d55cc14b653b240cec6e4f839d032943\"\u003e\u003ccode\u003efdd6bba\u003c/code\u003e\u003c/a\u003e Add to .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/435d3dcbc1f3357048f4c8b2a4fa11706f82a03d\"\u003e\u003ccode\u003e435d3dc\u003c/code\u003e\u003c/a\u003e Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/01422a0af4c6920a0362ae51dfde30e3b7e046b3\"\u003e\u003ccode\u003e01422a0\u003c/code\u003e\u003c/a\u003e Update CI test runs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/871d93974a248fe93338a3a61d981da092ccc40f\"\u003e\u003ccode\u003e871d939\u003c/code\u003e\u003c/a\u003e Install pytest-django in tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/6b922f785ea774f3ea5ba9fc52d318d0fee61274\"\u003e\u003ccode\u003e6b922f7\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eDJANGO_SETTINGS_MODULE\u003c/code\u003e to to env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/9f53de6c87426b3547b9464cf952c7c3d7b2d278\"\u003e\u003ccode\u003e9f53de6\u003c/code\u003e\u003c/a\u003e Add better errors from old and unused settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/c25ebf9227edb9cc3ab4522750515487dea4b7a7\"\u003e\u003ccode\u003ec25ebf9\u003c/code\u003e\u003c/a\u003e Update docs style\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MrThearMan/django-settings-holder/commit/0155ec17eabf5263b949ece7b3f2e4e23a41c84f\"\u003e\u003ccode\u003e0155ec1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MrThearMan/django-settings-holder/compare/v0.2.2...v0.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 44.0.2 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\n  considered secure, and is supported only for backwards compatibility.)\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003cp\u003e45.0.3 - 2025-05-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with long salts (this impacts keys\nencrypted by Bouncy Castle).\u003c/li\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with DES-CBC-MD5. While wildly\ninsecure, this remains prevalent.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-2:\u003c/p\u003e\n\u003cp\u003e45.0.2 - 2025-05-17\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed using ``mypy`` with ``cryptography`` on older versions of Python.\n\u003cp\u003e.. _v45-0-1:\u003c/p\u003e\n\u003cp\u003e45.0.1 - 2025-05-17\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-0:\u003c/p\u003e\n\u003cp\u003e45.0.0 - 2025-05-17 (YANKED)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Support for Python 3.7 is deprecated and will be removed in the next\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/50384959872c84933b6059c3b697139c8fcdcdea\"\u003e\u003ccode\u003e5038495\u003c/code\u003e\u003c/a\u003e backports for 45.0.3 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12979\"\u003e#12979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f81c07535ddf2d26cb1a27e70a9967ab708b8056\"\u003e\u003ccode\u003ef81c075\u003c/code\u003e\u003c/a\u003e Backport mypy fixes for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12930\"\u003e#12930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/8ea28e0bc724e57433f4f062795d91c0a367e9ad\"\u003e\u003ccode\u003e8ea28e0\u003c/code\u003e\u003c/a\u003e bump for 45.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12922\"\u003e#12922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/67840977c95a23d0dcfba154e303014026df0d3e\"\u003e\u003ccode\u003e6784097\u003c/code\u003e\u003c/a\u003e bump for 45 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12886\"\u003e#12886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2d9c1c9cbe650f2888c14476a4b30ef85d3fd2bc\"\u003e\u003ccode\u003e2d9c1c9\u003c/code\u003e\u003c/a\u003e bump MSRV to 1.74 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12919\"\u003e#12919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/6c18874cc2e76f173b77c67609cfb4d3495964c3\"\u003e\u003ccode\u003e6c18874\u003c/code\u003e\u003c/a\u003e Bump BoringSSL, OpenSSL, AWS-LC in CI (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12918\"\u003e#12918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/43fd312aea73e4ad79a54c78848e73bf5a640336\"\u003e\u003ccode\u003e43fd312\u003c/code\u003e\u003c/a\u003e add test vectors for upcoming explicit curve loading (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/12913\"\u003e#12913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/44.0.2...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 8.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=true\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.0 (2025-06-02)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/11372\"\u003e#11372\u003c/a\u003e: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12346\"\u003e#12346\u003c/a\u003e: Tests will now fail, instead of raising a warning, if they return any value other than None.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12874\"\u003e#12874\u003c/a\u003e: We dropped support for Python 3.8 following its end of life (2024-10-07).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12960\"\u003e#12960\u003c/a\u003e: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ethe docs \u0026lt;yield tests deprecated\u0026gt;\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10839\"\u003e#10839\u003c/a\u003e: Requesting an asynchronous fixture without a [pytest_fixture_setup]{.title-ref} hook that resolves it will now give a DeprecationWarning. This most commonly happens if a sync test requests an async fixture. This should have no effect on a majority of users with async tests or fixtures using async pytest plugins, but may affect non-standard hook setups or \u003ccode\u003eautouse=True\u003c/code\u003e. For guidance on how to work around this warning see \u003ccode\u003esync-test-async-fixture\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/11538\"\u003e#11538\u003c/a\u003e: Added \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} as an equivalent to \u003ccode\u003epytest.raises\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} for expecting \u003ccode\u003eExceptionGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;exc\u0026quot;}. Also adds \u003ccode\u003epytest.RaisesExc\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which is now the logic behind \u003ccode\u003epytest.raises\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and used as parameter to \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;}. \u003ccode\u003eRaisesGroup\u003c/code\u003e includes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulating \u003ccode\u003eexcept* \u0026lt;except_star\u0026gt;\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;}. See \u003ccode\u003eassert-matching-exception-groups\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} and docstrings for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12081\"\u003e#12081\u003c/a\u003e: Added \u003ccode\u003ecapteesys\u003c/code\u003e{.interpreted-text role=\u0026quot;fixture\u0026quot;} to capture AND pass output to next handler set by \u003ccode\u003e--capture=\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12504\"\u003e#12504\u003c/a\u003e: \u003ccode\u003epytest.mark.xfail\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now accepts \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} for the \u003ccode\u003eraises\u003c/code\u003e parameter when you expect an exception group. You can also pass a \u003ccode\u003epytest.RaisesExc\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} if you e.g. want to make use of the \u003ccode\u003echeck\u003c/code\u003e parameter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12713\"\u003e#12713\u003c/a\u003e: New [--force-short-summary]{.title-ref} option to force condensed summary output regardless of verbosity level.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8d99211f0ce3927eb7ee579f7b4f969da06dc787\"\u003e\u003ccode\u003e8d99211\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5dc5880715633c97310c0593f0ae356de27fa933\"\u003e\u003ccode\u003e5dc5880\u003c/code\u003e\u003c/a\u003e docs: update pytest.ini addopts example to use separate -p entries (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13529\"\u003e#13529\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d0c7ed0bfae5a5f1f9153cd1e464a421d701e925\"\u003e\u003ccode\u003ed0c7ed0\u003c/code\u003e\u003c/a\u003e Reintroduce PytestReturnNotNoneWarning (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13495\"\u003e#13495\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13527\"\u003e#13527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a1b3a7879589eb437e4fd97c169b228c3ed58c63\"\u003e\u003ccode\u003ea1b3a78\u003c/code\u003e\u003c/a\u003e Fix compatibility with Twisted 25 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13502\"\u003e#13502\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4c161aba8ecaab9940040702369025595d26564c\"\u003e\u003ccode\u003e4c161ab\u003c/code\u003e\u003c/a\u003e pytester: avoid unraisableexception gc collects in inline runs to speed up te...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a86ee09291f913b36fdeec14c42356515b91c979\"\u003e\u003ccode\u003ea86ee09\u003c/code\u003e\u003c/a\u003e Fix typo in parametrize.rst (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13514\"\u003e#13514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13516\"\u003e#13516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1a0581b0227fa07afd1f2c4c6215aec3862cf1ab\"\u003e\u003ccode\u003e1a0581b\u003c/code\u003e\u003c/a\u003e Remove outdated warning about faulthandler_timeout on Windows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13493\"\u003e#13493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4e631a71484c2fa49e3fd9f884546af411a4888d\"\u003e\u003ccode\u003e4e631a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13486\"\u003e#13486\u003c/a\u003e from hosmir/fixtypo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13487\"\u003e#13487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b49745ec529f06edfbbe531b766839763b2be3c2\"\u003e\u003ccode\u003eb49745e\u003c/code\u003e\u003c/a\u003e fix: support TerminalReporter.isatty being called (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13462\"\u003e#13462\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13483\"\u003e#13483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cc5ceed916d0c63696da33c67e035917194a4e87\"\u003e\u003ccode\u003ecc5ceed\u003c/code\u003e\u003c/a\u003e RELEASING: remove pytest mailing list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13472\"\u003e#13472\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13473\"\u003e#13473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...8.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.8.0 to 7.10.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some code with NOP bytecodes could report missing branches that are\nactually executed. This is now fixed, closing \u003ccode\u003eissue 1999\u003c/code\u003e_. Python 3.9\nstill shows the problem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1999: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1999\"\u003enedbat/coveragepy#1999\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.1 — 2025-07-27\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/nedbat/coveragepy/commit/0691ce5d08ae2eb6cae51f879ffe609aeb14d221\"\u003e\u003ccode\u003e0691ce5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/34c9aca951d2c89ab0af5343a9a1c5cc7b00aefd\"\u003e\u003ccode\u003e34c9aca\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/fd83f218e21058f43c7544a3cb01ce84714965f7\"\u003e\u003ccode\u003efd83f21\u003c/code\u003e\u003c/a\u003e style: lists for homogenous collections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/d9618002dde634898613f5935092cefbb29035f0\"\u003e\u003ccode\u003ed961800\u003c/code\u003e\u003c/a\u003e docs: remove an unused reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/697d4bb3950b31dc7f5d39d9dcf67fabde9db241\"\u003e\u003ccode\u003e697d4bb\u003c/code\u003e\u003c/a\u003e fix: subprocesses inherit the entire configuration. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003e#2021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b6db3b7e52e4820bd1d3e43b29f700a5f31f3937\"\u003e\u003ccode\u003eb6db3b7\u003c/code\u003e\u003c/a\u003e build: show the total during local metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/cfbceb584b18f87fdc6228fc4a8202d789e030cc\"\u003e\u003ccode\u003ecfbceb5\u003c/code\u003e\u003c/a\u003e docs: reverted \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/264bbd3d2c2ee9eca32248c5874423c0b6ff6287\"\u003e\u003ccode\u003e264bbd3\u003c/code\u003e\u003c/a\u003e refactor: more patch logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3ecdfafc74bd2b007b561e6ac6b080c04e598b06\"\u003e\u003ccode\u003e3ecdfaf\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/41a225698710c9005da822978930be69312d1676\"\u003e\u003ccode\u003e41a2256\u003c/code\u003e\u003c/a\u003e fix: revert \u0026quot;thread safe resume (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.8.0...7.10.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-django` from 4.10.0 to 4.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-django/releases\"\u003epytest-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4111-2025-04-03\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.11.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\"\u003ehttps://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst#v4110-2025-04-01\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/pytest-dev/pytest-django/blob/main/docs/changelog.rst\"\u003epytest-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.11.1 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a regression in v4.11.0 for Django \u003ccode\u003eTestCase\u003c/code\u003e tests using the \u003ccode\u003edatabases\u003c/code\u003e class variable (\u003ccode\u003e[#1188](https://github.com/pytest-dev/pytest-django/issues/1188) \u0026lt;https://github.com/pytest-dev/pytest-django/issues/1188\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.11.0 (2025-04-01)\u003c/h2\u003e\n\u003cp\u003eCompatibility\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded official support for Django 5.2 (\u003ccode\u003ePR [#1179](https://github.com/pytest-dev/pytest-django/issues/1179) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1179\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDropped testing on MySQL’s MyISAM storage engine (\u003ccode\u003ePR [#1180](https://github.com/pytest-dev/pytest-django/issues/1180) \u0026lt;https://github.com/pytest-dev/pytest-django/pull/1180\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eStopped setting up and serializing databases on test session setup when not needed (the database is not requested / \u003ccode\u003eserialized_rollback\u003c/code\u003e is not used).\nOn test databases with large amounts of pre-seeded data, this may remove a delay of a few seconds when running \u003ccode\u003epytest --reuse-db\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe determination of which databases to setup is done by static inspection of the test suite.\nUsing pytest's dynamic features to request db access, such as :meth:\u003ccode\u003erequest.getfixturevalue(\u0026quot;db\u0026quot;) \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e, may throw off this analysis.\nIf you start seeing \u003ccode\u003eDatabaseOperationForbidden\u003c/code\u003e or \u0026quot;unable to open database\u0026quot; errors, this is likely the cause.\nTo fix this, decorate at least one test with the :func:\u003ccode\u003edjango_db \u0026lt;pytest.mark.django_db\u0026gt;\u003c/code\u003e marker with appropriate \u003ccode\u003edatabases\u003c/code\u003e and \u003ccode\u003eserialized_rollback\u003c/code\u003e settings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/5ada9c1596ee9e0624801d553995d98d2e3ccce8\"\u003e\u003ccode\u003e5ada9c1\u003c/code\u003e\u003c/a\u003e Release 4.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/cf3f0bb89be0d741e7c4e10469d0559e86753cc7\"\u003e\u003ccode\u003ecf3f0bb\u003c/code\u003e\u003c/a\u003e fixtures: fixup a regression in previous release for TestCase multi-db support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6d5c272519037031f0b68d78dca44727b860d65e\"\u003e\u003ccode\u003e6d5c272\u003c/code\u003e\u003c/a\u003e Release 4.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/8000db04f07822861331d0df8ef52f9c67eafc00\"\u003e\u003ccode\u003e8000db0\u003c/code\u003e\u003c/a\u003e Only setup and serialize databases as needed by tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/6f7fc269f871da0134d9155ca856b29582aa46ce\"\u003e\u003ccode\u003e6f7fc26\u003c/code\u003e\u003c/a\u003e Add optional integration of pytest into django's \u003ccode\u003emanage.py test\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3071a666dce1f60299bf89bd9c268ac7e0ee459d\"\u003e\u003ccode\u003e3071a66\u003c/code\u003e\u003c/a\u003e docs/conf.py: format with ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/3f44e50ff326c23a44bf5633423d491a251d8eed\"\u003e\u003ccode\u003e3f44e50\u003c/code\u003e\u003c/a\u003e fixtures: avoid unnecessary closure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/b7328696ad7a5bfc308b60c909972a9166fce8a3\"\u003e\u003ccode\u003eb732869\u003c/code\u003e\u003c/a\u003e Remove testing on MyISAM (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-django/commit/e362f4c6303b203e5449ed023b353ad81f40a753\"\u003e\u003ccode\u003ee362f4c\u003c/code\u003e\u003c/a\u003e Add support for Django 5.2 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-django/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pytest-dev/pytest-django/compare/v4.10.0...v4.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.25.0 to 4.28.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.28.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3570\"\u003etox-dev/tox#3570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass ssh-agent variables by default by \u003ca href=\"https://github.com/daniilgankov\"\u003e\u003ccode\u003e@​daniilgankov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3572\"\u003etox-dev/tox#3572\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/daniilgankov\"\u003e\u003ccode\u003e@​daniilgankov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3572\"\u003etox-dev/tox#3572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.3...4.28.4\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.3...4.28.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo on cmd_build filter check expression by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3569\"\u003etox-dev/tox#3569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.2...4.28.3\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.2...4.28.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't pass in the filter argument to tar.extractall on old Python versions by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3568\"\u003etox-dev/tox#3568\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.1...4.28.2\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.1...4.28.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue number typo in changelog by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3563\"\u003etox-dev/tox#3563\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/tox-dev/tox/pull/3564\"\u003etox-dev/tox#3564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use tarfile.data_filter when it's available by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3566\"\u003etox-dev/tox#3566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.28.0...4.28.1\"\u003ehttps://github.com/tox-dev/tox/compare/4.28.0...4.28.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[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/tox-dev/tox/pull/3548\"\u003etox-dev/tox#3548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] Document how to require a plugin by \u003ca href=\"https://github.com/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3552\"\u003etox-dev/tox#3552\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/tox-dev/tox/pull/3554\"\u003etox-dev/tox#3554\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/tox-dev/tox/pull/3558\"\u003etox-dev/tox#3558\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e[testenv] constraints\u003c/code\u003e option by \u003ca href=\"https://github.com/stephenfin\"\u003e\u003ccode\u003e@​stephenfin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3556\"\u003etox-dev/tox#3556\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/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.28.4 (2025-07-31)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.28.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Pass ssh-agent variables ``SSH_AGENT_PID`` and ``SSH_AUTH_SOCK`` in ``pass_env`` by default.\n  - by :user:`daniilgankov` (:issue:`3572`)\n\u003ch2\u003ev4.28.3 (2025-07-25)\u003c/h2\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch2\u003ev4.28.2 (2025-07-25)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.28.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't pass in the filter argument to tar.extractall on old Python versions - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3568\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.28.1 (2025-07-22)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 4.28.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Use `tarfile.data_filter \u0026lt;https://docs.python.org/3/library/tarfile.html#tarfile.data_filter\u0026gt;`_ with ``extractall``\n  only on supported Python versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026amp;gt;= 3.11.4\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026amp;gt;= 3.10.12\u003c/code\u003e and \u003ccode\u003e\u0026amp;lt; 3.11\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e\u0026amp;gt;= 3.9.17\u003c/code\u003e and \u003ccode\u003e\u0026amp;lt; 3.10\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eby :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3565\u003c/code\u003e)\u003c/p\u003e\n\u003ch2\u003ev4.28.0 (2025-07-20)\u003c/h2\u003e\n\u003cp\u003eFeatures - 4.28.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003econstraints\u003c/code\u003e to allow specifying constraints files for all dependencies. (:issue:\u003ccode\u003e3550\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow disabling tox plugins via the \u003ccode\u003eTOX_DISABLED_EXTERNAL_PLUGINS\u003c/code\u003e environment variable - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3468\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eImproved Documentation - 4.28.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- The ``min_version``/``minversion`` config option is deprecated in favor of the ``requires`` option. (:issue:`3553`)\n\u003ch2\u003ev4.27.0 (2025-06-17)\u003c/h2\u003e\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/611b7516d639638cecb1e2117adeeb6567120438\"\u003e\u003ccode\u003e611b751\u003c/code\u003e\u003c/a\u003e release 4.28.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/9f2db71b64bdfc90ce40b33b38df82ac4d1a2abc\"\u003e\u003ccode\u003e9f2db71\u003c/code\u003e\u003c/a\u003e Pass ssh-agent variables by default (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c28c4b1c37b6cb24c66be2667223961cf14feaae\"\u003e\u003ccode\u003ec28c4b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/815ca3149733b5cd1dc84d8ad67d6feaf4736067\"\u003e\u003ccode\u003e815ca31\u003c/code\u003e\u003c/a\u003e release 4.28.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/8a59b928c2dabfcd35e8842109126f7a7d9f9d7b\"\u003e\u003ccode\u003e8a59b92\u003c/code\u003e\u003c/a\u003e Fix type on expression (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3569\"\u003e#3569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/ebfaab66021d9f060ebfc3f1821a53874a905c49\"\u003e\u003ccode\u003eebfaab6\u003c/code\u003e\u003c/a\u003e release 4.28.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/ae930db56a6dbe11ad23ffc86c5d31c9d8ace514\"\u003e\u003ccode\u003eae930db\u003c/code\u003e\u003c/a\u003e Don't pass in hte filter argument to tar.extractall on old Python versions (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c836ab2727992329ffa61330d1aeb524e6d265f0\"\u003e\u003ccode\u003ec836ab2\u003c/code\u003e\u003c/a\u003e release 4.28.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c343b26717d314d59bb22252c5d61d7c4e9e03cb\"\u003e\u003ccode\u003ec343b26\u003c/code\u003e\u003c/a\u003e Only use tarfile.data_filter when it's available (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/753dd626564cec7f7b6756d86bc22e2cdfcdcbc3\"\u003e\u003ccode\u003e753dd62\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3564\"\u003e#3564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.25.0...4.28.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.14.3 to 10.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.6.1\u003c/h2\u003e\n\u003ch2\u003e10.16.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Inefficient regular expression pattern for figure caption numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add early support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Snippets: Added \u003ccode\u003emax_retries\u003c/code\u003e and \u003ccode\u003ebackoff_retries\u003c/code\u003e options to configure new retry logic for HTTP 429\nerrors (Too Many Requests client error).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Caption: Prefix templates are now preserved exactly as specified allowing the insertion of HTML tags if\ndesired.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Caption: Fix issue where manual numbers in auto were not respected appropriately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e10.15.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: SuperFences: Add \u003ccode\u003erelaxed_headers\u003c/code\u003e option which can tolerate bad content in the fenced code header. When\nenabled, code blocks with bad content in the header will likely still convert into code blocks, often respecting\nthe specified language.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add type hints to the Blocks interface and a few additional files.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Blocks: Fix some corner cases of nested blocks with lists.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Tab and Tabbed: Fix a case where tabs could fail if \u003ccode\u003ecombine_header_slug\u003c/code\u003e was enabled and there was no\nheader.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/b50d15a56850ed1408a284bba81cc019c6bd72e8\"\u003e\u003ccode\u003eb50d15a\u003c/code\u003e\u003c/a\u003e Caption pattern should match a literal dot (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/f64422f87c05031a8c8d62b1988bf76e8f65f27f\"\u003e\u003ccode\u003ef64422f\u003c/code\u003e\u003c/a\u003e Update copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/9edb92606fc813e983fce3187862a4f28bb15886\"\u003e\u003ccode\u003e9edb926\u003c/code\u003e\u003c/a\u003e Use Trusted Publisher\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/7d3d4f990463e50b1ba1e20830832285d92990c7\"\u003e\u003ccode\u003e7d3d4f9\u003c/code\u003e\u003c/a\u003e Add early support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/beb841e6f968b81403166d685b083fe2bde84bbc\"\u003e\u003ccode\u003ebeb841e\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/620d7fded457a0b5317019fa461a27f484a0d3d4\"\u003e\u003ccode\u003e620d7fd\u003c/code\u003e\u003c/a\u003e Docs: update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a49f32aa4ac91d97c7c10c9abe7f654b5ec802e5\"\u003e\u003ccode\u003ea49f32a\u003c/code\u003e\u003c/a\u003e Refactor for mypy issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/52a481b5591879f49baffecf4275f351d27a3759\"\u003e\u003ccode\u003e52a481b\u003c/code\u003e\u003c/a\u003e Docs: update JS dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2a1828accdc2371d97610fbbb574dd878e090b54\"\u003e\u003ccode\u003e2a1828a\u003c/code\u003e\u003c/a\u003e Allow raw HTML in caption prefix (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/fbf4bf22da3bc864f24b4ee6a2c05b145fb6c304\"\u003e\u003ccode\u003efbf4bf2\u003c/code\u003e\u003c/a\u003e Fix issue where manual captions in auto were not respected properly (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.14.3...10.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.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/MrThearMan/jwt-email-auth/pull/168","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrThearMan%2Fjwt-email-auth/issues/168","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/168/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-08-08T00:29:17.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2729277200","node_id":"PR_kwDODVj4p86irXcQ","number":725,"state":"closed","title":"chore(deps): bump the python group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["hibare"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-16T14:50:51.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-08T00:29:17.000Z","updated_at":"2025-08-16T14:50:51.000Z","time_to_close":742894,"merged_at":"2025-08-16T14:50:51.000Z","merged_by":"hibare","closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":10,"packages":[{"name":"django","old_version":"5.2.4","new_version":"5.2.5","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"build","old_version":"1.0.3","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"click","old_version":"8.1.3","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.0","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"pycodestyle","old_version":"2.12.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyproject-hooks","old_version":"1.0.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"tomli","old_version":"2.0.1","new_version":"2.2.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"wheel","old_version":"0.40.0","new_version":"0.45.1","repository_url":"https://github.com/pypa/wheel"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 10 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.2.4` | `5.2.5` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [build](https://github.com/pypa/build) | `1.0.3` | `1.3.0` |\n| [click](https://github.com/pallets/click) | `8.1.3` | `8.2.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.0` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.12.0` | `2.14.0` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.0.0` | `1.2.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.2.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.40.0` | `0.45.1` |\n\n\nUpdates `django` from 5.2.4 to 5.2.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a3b1107a4955bdd994908efb4c6e1d03c281e69f\"\u003e\u003ccode\u003ea3b1107\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.5 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0489f54e8b047374f0b83fe77695976edcf8c118\"\u003e\u003ccode\u003e0489f54\u003c/code\u003e\u003c/a\u003e [5.2.x] Added release date for 5.2.5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a9c7d4b703759e9903dd92899dd8ac662007baf3\"\u003e\u003ccode\u003ea9c7d4b\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36485\"\u003e#36485\u003c/a\u003e -- Grouped docs checks under a unified make check target.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ad6d43cd9ae05d3575f9e7bb1cb488bce5d905d\"\u003e\u003ccode\u003e5ad6d43\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/34140\"\u003e#34140\u003c/a\u003e -- Added dedicated code block formatting section in docs/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/bdc3f9e3508fc144c5e9710f5b672cc41f6e742d\"\u003e\u003ccode\u003ebdc3f9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36530\"\u003e#36530\u003c/a\u003e -- Extended fields.E347 to check for ManyToManyField inv...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f01ceae477a71a1c244c332e1b53a9499e484874\"\u003e\u003ccode\u003ef01ceae\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36535\"\u003e#36535\u003c/a\u003e -- Ensured compatibility with docutils 0.19 through 0.22.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5ca58ce3d0d254752caa19e96055f54feadd5582\"\u003e\u003ccode\u003e5ca58ce\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected assertNumQueries() example in docs/topics/testing/tools.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b3bb7230e1225861b5c1f08931f2d82c2b04133a\"\u003e\u003ccode\u003eb3bb723\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/34871\"\u003e#34871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django/django/issues/36518\"\u003e#36518\u003c/a\u003e -- Implemented unresolved lookups expression rep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e5ccb69bc3da407ab2b0477c0cc5db27c7207225\"\u003e\u003ccode\u003ee5ccb69\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36198\"\u003e#36198\u003c/a\u003e -- Implemented unresolved transform expression replacement.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5aefd005fc3dd35be6e9e4a24f9c2bc92b69df3b\"\u003e\u003ccode\u003e5aefd00\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed writer_name deprecation warning in docutils 0.22+.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.4...5.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.0 to 3.16.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved reference to GitHub Issues and Discussions in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edrf-restwind\u003c/code\u003e and update outdated images in \u003ccode\u003ebrowsable-api.md\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9680\"\u003e#9680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated funding page to represent current scope in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9686\"\u003e#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken Heroku JSON Schema link in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9693\"\u003e#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Django documentation links to use stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9698\"\u003e#9698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand docs on unique constraints cause 'required=True' in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9725\"\u003e#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert extension back from \u003ccode\u003edjangorestframework-guardian2\u003c/code\u003e to \u003ccode\u003edjangorestframework-guardian\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9734\"\u003e#9734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note to tutorial about required \u003ccode\u003erequest\u003c/code\u003e in serializer context when using \u003ccode\u003eHyperlinkedModelSerializer\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9732\"\u003e#9732\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInternal changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate GitHub Actions to use Ubuntu 24.04 for testing in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9677\"\u003e#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate test matrix to use Django 5.2 stable version in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9679\"\u003e#9679\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epyupgrade\u003c/code\u003e to \u003ccode\u003epre-commit\u003c/code\u003e hooks in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix test with Django 5 when \u003ccode\u003epytz\u003c/code\u003e is available in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9715\"\u003e#9715\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/araggohnxd\"\u003e\u003ccode\u003e@​araggohnxd\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9660\"\u003e#9660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ren000thomas\"\u003e\u003ccode\u003e@​ren000thomas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ulgens\"\u003e\u003ccode\u003e@​ulgens\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9682\"\u003e#9682\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/encode/django-rest-framework/commit/de018df2aaacb1d2d947c0cfbfaa6d08fb50557d\"\u003e\u003ccode\u003ede018df\u003c/code\u003e\u003c/a\u003e Prepare 3.16.1 release (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9752\"\u003e#9752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/a7d050f5b3388ed9dc69c7770fdbd9654d4639ae\"\u003e\u003ccode\u003ea7d050f\u003c/code\u003e\u003c/a\u003e Turkish Translation updates (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9749\"\u003e#9749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/853969c69c815be69513c2f63a41285858a45352\"\u003e\u003ccode\u003e853969c\u003c/code\u003e\u003c/a\u003e Fix test with Django 5 when pytz is available (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9715\"\u003e#9715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/2ae8c117dae5d7912760492a1df397e2fcd8c7a4\"\u003e\u003ccode\u003e2ae8c11\u003c/code\u003e\u003c/a\u003e Add note to tutorial about required request in serializer context when using ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/70e54f45add6a96f92bbadbcff30fc211f2ce0c3\"\u003e\u003ccode\u003e70e54f4\u003c/code\u003e\u003c/a\u003e Revert docs back to djangorestframework-guardian (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9734\"\u003e#9734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30384947053b1f2b2c9e82cafd1da934d3442a61\"\u003e\u003ccode\u003e3038494\u003c/code\u003e\u003c/a\u003e Document that unique constraints cause \u003ccode\u003erequired=True\u003c/code\u003e in ModelSerializer (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9\"\u003e#9\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/4bb46c2949fc67a1f8e74c43776833d81df471ed\"\u003e\u003ccode\u003e4bb46c2\u003c/code\u003e\u003c/a\u003e Add Kazakh(kk) locale support (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9713\"\u003e#9713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/e454758fb6edf1dcf5aa5417a388b940c871469c\"\u003e\u003ccode\u003ee454758\u003c/code\u003e\u003c/a\u003e Fix regression in unique_together validation with SerializerMethodField (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/33d59fefaa5af04f4bed9312239eb1e5e6def2a2\"\u003e\u003ccode\u003e33d59fe\u003c/code\u003e\u003c/a\u003e Update Spanish translations (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9701\"\u003e#9701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0202a0aa5cbaf8573458b932878dfd5044c93ab\"\u003e\u003ccode\u003ec0202a0\u003c/code\u003e\u003c/a\u003e Update Django documentation links to use stable version (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9698\"\u003e#9698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.0.3 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/891\"\u003e#891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/871\"\u003e#871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/824\"\u003e#824\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/918\"\u003e#918\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/870\"\u003e#870\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/915\"\u003e#915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/862\"\u003e#862\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/863\"\u003e#863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/899\"\u003e#899\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/896\"\u003e#896\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.2.post1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eThis release only makes metadata (Python 3.13 classifier), docs, and test suite changes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: add Python 3.13 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/815\"\u003epypa/build#815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mention conda-forge name in README by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/816\"\u003epypa/build#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add a missing ` in README by \u003ca href=\"https://github.com/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix under pyproject-hooks 1.2 by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/824\"\u003epypa/build#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add PyPI attestations by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/821\"\u003epypa/build#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: 1.2.2.post1 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/820\"\u003epypa/build#820\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/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.2.2...1.2.2.post1\"\u003ehttps://github.com/pypa/build/compare/1.2.2...1.2.2.post1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/764\"\u003e#764\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/807\"\u003e#807\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/build/issues/813\"\u003e#813\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0 (2025-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e\n(PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8\n(PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+\n(PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed\n(PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip\n(PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn\n(PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster\n(PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv\n(PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests\n(PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e, :pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata\n(PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development\n(PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs\n(PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e8752f69178d2b2c3563e9c8fa17aa6e11b12c\"\u003e\u003ccode\u003e60e8752\u003c/code\u003e\u003c/a\u003e chore: bump to 1.3.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/807cfba618bc4f7b13e938ffa395fffd82494383\"\u003e\u003ccode\u003e807cfba\u003c/code\u003e\u003c/a\u003e feat: add --config-json (\u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bf54ad04ffe30e7f7847ea0bcbc081b550830950\"\u003e\u003ccode\u003ebf54ad0\u003c/code\u003e\u003c/a\u003e tests: fix issues with ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/53852df8d84d1d17afaa851d4e1cc3754676bb29\"\u003e\u003ccode\u003e53852df\u003c/code\u003e\u003c/a\u003e docs: uv example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/b983371befe0547b312aba36083b859d923d9bfc\"\u003e\u003ccode\u003eb983371\u003c/code\u003e\u003c/a\u003e tests: optional virtualenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/6cd157ad0b614a76a13374032a4f56b65048c0be\"\u003e\u003ccode\u003e6cd157a\u003c/code\u003e\u003c/a\u003e Adopt PEP 639 \u0026quot;license\u0026quot; field (\u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bdaea367438b8e5ed3c26a7497eafc007084fbec\"\u003e\u003ccode\u003ebdaea36\u003c/code\u003e\u003c/a\u003e tests: fixes for errors in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/14d6508679e2ddb4a511b4b41e972cb374e9dadb\"\u003e\u003ccode\u003e14d6508\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/59ac60e78e0dc5164355bd29eb99fb1cb2d7a59c\"\u003e\u003ccode\u003e59ac60e\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/48ebd63cd7049dff737093c462970262ae1ceed0\"\u003e\u003ccode\u003e48ebd63\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.0.3...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.3 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.3...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.4.1 to 7.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior -- by \u003ca href=\"https://github.com/sethmlarson\"\u003e\u003ccode\u003e@​sethmlarson\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2082\"\u003e#2082\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2083\"\u003e#2083\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies -- by \u003ca href=\"https://github.com/macro1\"\u003e\u003ccode\u003e@​macro1\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2087\"\u003e#2087\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/gkreitz\"\u003e\u003ccode\u003e@​gkreitz\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2176\"\u003e#2176\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2178\"\u003e#2178\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\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as constraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2106\"\u003e#2106\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2188\"\u003e#2188\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to POSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemovals and backward incompatible breaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epip-compile\u003c/code\u003e will now relativize the requirements paths which are recorded in its output.\nPaths are made relative to the working directory.\nThis provides more consistent results across \u003ccode\u003epip\u003c/code\u003e versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior\n-- by {user}\u003ccode\u003esethmlarson\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2082\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e\n-- by {user}\u003ccode\u003echrysle\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2083\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies\n-- by {user}\u003ccode\u003emacro1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2087\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e\n-- by {user}\u003ccode\u003egkreitz\u003c/code\u003e and {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2176\u003c/code\u003e, {issue}\u003ccode\u003e2178\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as\nconstraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003echrysle\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2106\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12\n-- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2188\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to\nPOSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003esirosen\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2195\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/debe5a46b700347adcaacbf6ea3c70209f14a91e\"\u003e\u003ccode\u003edebe5a4\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/1c7d9fbe698565a42d272718bfaf2588f71a9224\"\u003e\u003ccode\u003e1c7d9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e from webknjaz/bugfixes/release-env-context-access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/96ed4d2264a4fc0b567aa9e86c5bbbf7f6b3b680\"\u003e\u003ccode\u003e96ed4d2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e from webknjaz/maintenance/release-attestations-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a180dd9cdc9e877313e6a2c24b8919ca2e4f1f8b\"\u003e\u003ccode\u003ea180dd9\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7f9512a26fc831a4f4d3a54e045fa1bd4c818ac1\"\u003e\u003ccode\u003e7f9512a\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/396da33d20c0823242826a0b6194878cebfbf349\"\u003e\u003ccode\u003e396da33\u003c/code\u003e\u003c/a\u003e Run the dist build job in PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7b1c22ca849239c04723e404c138307be9f24b3c\"\u003e\u003ccode\u003e7b1c22c\u003c/code\u003e\u003c/a\u003e Fix accessing repo id in the release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/05daad6ecd4724cce7dd1eeba83489d5b48308cd\"\u003e\u003ccode\u003e05daad6\u003c/code\u003e\u003c/a\u003e Drop release attestations for Jazzband upload\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/b4ddd756b5830decaaf9cfd430704e9218ac6c37\"\u003e\u003ccode\u003eb4ddd75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2203\"\u003e#2203\u003c/a\u003e from sirosen/use-towncrier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a136172f88e95c919b4a0bc4962b23da2b032305\"\u003e\u003ccode\u003ea136172\u003c/code\u003e\u003c/a\u003e Add a run of 'changelog-draft' to QA CI jobs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/7.4.1...v7.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pycodestyle` from 2.12.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt\"\u003epycodestyle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.14.0 (2025-06-20)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix false positive for TypeVar defaults with more than one argument.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1286\"\u003e#1286\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.13.0 (2025-03-29)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1254\"\u003e#1254\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1255\"\u003e#1255\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDrop EOL python 3.8.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1267\"\u003e#1267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eE251: fix false positive for PEP 696 defaults.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1278\"\u003e#1278\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1279\"\u003e#1279\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.12.1 (2024-08-04)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly preserve escaped \u003ccode\u003e{\u003c/code\u003e and \u003ccode\u003e}\u003c/code\u003e in fstrings in logical lines in 3.12+.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1252\"\u003e#1252\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/PyCQA/pycodestyle/commit/814a0d1259444a21ed318e64edaf6a530c2aeeb8\"\u003e\u003ccode\u003e814a0d1\u003c/code\u003e\u003c/a\u003e Release 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/8621e318655267c2a6cfa15bfd3f7cc02a60881f\"\u003e\u003ccode\u003e8621e31\u003c/code\u003e\u003c/a\u003e fix false positive with TypeVar defaults with more than one argument\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/292cdd0a8702b8950c51e11275d7c204267204f1\"\u003e\u003ccode\u003e292cdd0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1285\"\u003e#1285\u003c/a\u003e from PyCQA/sphinx-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/46bc333dc127b73f1af2127bf44dbd74e7bf34cb\"\u003e\u003ccode\u003e46bc333\u003c/code\u003e\u003c/a\u003e add sphinx configuration for rtfd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/a98638490e3c799efeebf0af638940d5a581b3c9\"\u003e\u003ccode\u003ea986384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/c85e7403c056cc71e85e0781c254f87461ccea6a\"\u003e\u003ccode\u003ec85e740\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/ae41b3420360a9f6732b316f5746c56146a37932\"\u003e\u003ccode\u003eae41b34\u003c/code\u003e\u003c/a\u003e updates for python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/34fc7f0fe26a4a38ddeee62e0065900e8ed5347f\"\u003e\u003ccode\u003e34fc7f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1280\"\u003e#1280\u003c/a\u003e from PyCQA/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/7182ac8a56cdff4a05305b85e5e140922aaf56ba\"\u003e\u003ccode\u003e7182ac8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/1845a9293a36e5ade2a1a5146ecb1716add4f1eb\"\u003e\u003ccode\u003e1845a92\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/pycodestyle/compare/2.12.0...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyproject-hooks` from 1.0.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/pyproject-hooks/blob/main/docs/changelog.rst\"\u003epyproject-hooks's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove interoperability with \u003ccode\u003eimportlib.metadata\u003c/code\u003e, fixing a regression\nin setuptools compatibility in 1.1 (PR :pr:\u003ccode\u003e199\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eClean up the \u003ccode\u003e_in_process\u003c/code\u003e directory inside the package from \u003ccode\u003esys.path\u003c/code\u003e\nbefore imporing the backend (PR :pr:\u003ccode\u003e193\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations to the public API.\u003c/li\u003e\n\u003cli\u003eMore careful handling of the \u003ccode\u003ebackend-path\u003c/code\u003e key from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nPrevious versions would load the backend and then check that it was loaded\nfrom the specified path; the new version only loads it from the specified path.\nThe \u003ccode\u003eBackendInvalid\u003c/code\u003e exception is now a synonym for :exc:\u003ccode\u003eBackendUnavailable\u003c/code\u003e,\nand code should move to using the latter name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename package to \u003ccode\u003epyproject_hooks\u003c/code\u003e (from \u003ccode\u003epep517\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRemove deprecated modules (\u003ccode\u003e.build\u003c/code\u003e, \u003ccode\u003e.check\u003c/code\u003e and \u003ccode\u003e.envbuild\u003c/code\u003e).\nUse the \u003ccode\u003ebuild \u0026lt;https://pypa-build.readthedocs.io/en/stable/\u0026gt;\u003c/code\u003e_ project\ninstead for this higher-level functionality of setting up a temporary build\nenvironment.\u003c/li\u003e\n\u003cli\u003eRequire Python 3.7 or above.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etomllib\u003c/code\u003e from the standard library on Python 3.11. \u003ccode\u003epyproject_hooks\u003c/code\u003e\nnow has no external dependencies when installed in Python 3.11.\u003c/li\u003e\n\u003cli\u003eAvoid chaining exceptions when using the fallback implementation for\n:meth:\u003ccode\u003e.prepare_metadata_for_build_wheel\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix propagating error message for :exc:\u003ccode\u003e.BackendInvalid\u003c/code\u003e errors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for end-of-life Pythons. Now requires Python3.6+.\u003c/li\u003e\n\u003cli\u003eRemove support for \u003ccode\u003etoml\u003c/code\u003e package. Now requires \u003ccode\u003etomli\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRely on preferred \u0026quot;files\u0026quot; API on Python 3.9 and later (:issue:\u003ccode\u003e140\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method for pip to check if build_editable hook is supported.\nThis is a private API for now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev0.11.1\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/pypa/pyproject-hooks/commit/4b7c6d113fb89b755d762a88712c8a6873cddd47\"\u003e\u003ccode\u003e4b7c6d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/205\"\u003e#205\u003c/a\u003e from pypa/prepare-1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/102747081953a43bcbb9304e6319de3bf2166bfc\"\u003e\u003ccode\u003e1027470\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dabe52eac18ef677af262657c97a7689b20fa909\"\u003e\u003ccode\u003edabe52e\u003c/code\u003e\u003c/a\u003e Prepare release notes for 1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/3df91751cb87c01b1fd2584a37ca3c186f126a48\"\u003e\u003ccode\u003e3df9175\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/204\"\u003e#204\u003c/a\u003e from pypa/fix/setuptools-71\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9efaa97258b63108750539e440789a5cada90fd8\"\u003e\u003ccode\u003e9efaa97\u003c/code\u003e\u003c/a\u003e Relax test for build requirements from setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/6b57973c3a8ef919dffecac8d15fd608fc51a271\"\u003e\u003ccode\u003e6b57973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/199\"\u003e#199\u003c/a\u003e from abravalheri/issue-192-take2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9988edd23921cdf74bed88f7ae1397b1c440f385\"\u003e\u003ccode\u003e9988edd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/196\"\u003e#196\u003c/a\u003e from pypa/sdist-includes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dba181736a41503f81ed73434143db7537494c76\"\u003e\u003ccode\u003edba1817\u003c/code\u003e\u003c/a\u003e Always use importlib.metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/d68f4d94477f0c20f900b1520ef1a1193e9d4f9d\"\u003e\u003ccode\u003ed68f4d9\u003c/code\u003e\u003c/a\u003e Remove unused dev-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/455b77f9a89f3bfded5925ccc15e17d20c9b99cd\"\u003e\u003ccode\u003e455b77f\u003c/code\u003e\u003c/a\u003e Account for importlib_metadata in Python\u0026lt;3.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/pyproject-hooks/compare/v1.0.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.0.1 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eDon't attempt to compile binary wheels for Python 3.8, 3.9 and 3.10 where cibuildwheel depends on a conflicting Tomli version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003emypyc generated binary wheels for common platforms\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated\n\u003cul\u003e\n\u003cli\u003eInstantiating \u003ccode\u003eTOMLDecodeError\u003c/code\u003e with free-form arguments.\n\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e and \u003ccode\u003epos\u003c/code\u003e arguments should be given.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e, \u003ccode\u003epos\u003c/code\u003e, \u003ccode\u003elineno\u003c/code\u003e and \u003ccode\u003ecolno\u003c/code\u003e attributes to \u003ccode\u003eTOMLDecodeError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved\n\u003cul\u003e\n\u003cli\u003ePython 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eImproved\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003eloads\u003c/code\u003e raise \u003ccode\u003eTypeError\u003c/code\u003e not \u003ccode\u003eAttributeError\u003c/code\u003e on bad input types that do not have the \u003ccode\u003ereplace\u003c/code\u003e attribute.\nImprove error message when \u003ccode\u003ebytes\u003c/code\u003e is received.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eType annotations\n\u003cul\u003e\n\u003cli\u003eType annotate \u003ccode\u003eload\u003c/code\u003e input as \u003ccode\u003etyping.IO[bytes]\u003c/code\u003e (previously \u003ccode\u003etyping.BinaryIO\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/73c3d102eb81fe0d2b87f905df4f740f8878d8da\"\u003e\u003ccode\u003e73c3d10\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.0 → 2.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/7c2368d2cb6c2a49b0fca08765fbba65686efd88\"\u003e\u003ccode\u003e7c2368d\u003c/code\u003e\u003c/a\u003e Don't build wheels for Python versions requiring tomli\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/c48e4e111c8558abcfe141f19fcaada3365f836c\"\u003e\u003ccode\u003ec48e4e1\u003c/code\u003e\u003c/a\u003e Bump version: 2.1.0 → 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/76047414ff1a7c150bb10f0a171da13c5e6af743\"\u003e\u003ccode\u003e7604741\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0724e2ab1858da7f5e05a9bffdb24c33589d951c\"\u003e\u003ccode\u003e0724e2a\u003c/code\u003e\u003c/a\u003e Annotate global constants as Final to speed up compiled code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/149547d2ec5b7d1badf8d0c1ab603735fa9b5a70\"\u003e\u003ccode\u003e149547d\u003c/code\u003e\u003c/a\u003e Create binary wheels with mypyc (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/443a0c1bc5da39b7ed84306912ee1900e6b72e2f\"\u003e\u003ccode\u003e443a0c1\u003c/code\u003e\u003c/a\u003e pre-commit autoupdate and autofix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/48461cfbaf0775c9025720f80d8afa4fa50c0183\"\u003e\u003ccode\u003e48461cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/240\"\u003e#240\u003c/a\u003e from hukkin/version-2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d6e045b1e6b36c56271d9f003794d915d713f962\"\u003e\u003ccode\u003ed6e045b\u003c/code\u003e\u003c/a\u003e Bump version: 2.0.2 → 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d1d6a8571b06b18005af8bf9078c1d37de5353e1\"\u003e\u003ccode\u003ed1d6a85\u003c/code\u003e\u003c/a\u003e Add attributes to TOMLDecodeError. Deprecate free-form \u003ccode\u003e__init__\u003c/code\u003e args (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/238\"\u003e#238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.0.1...2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` from 0.40.0 to 0.45.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.45.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in the file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to \u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with \u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated module and import the \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e itself\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7\u003c/li\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 24.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed removing build tag with \u003ccode\u003ewheel tags --build \u0026quot;\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing updated \u003ccode\u003eWHEEL\u003c/code\u003e fields after a blank line, causing other tools to ignore them\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing \u003ccode\u003eWHEEL\u003c/code\u003e with CRLF line endings or a mix of CRLF and LF\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack --build-number \u0026quot;\u0026quot;\u003c/code\u003e not removing build tag from \u003ccode\u003eWHEEL\u003c/code\u003e (above changes by Benjamin Gilbert)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 23.2\u003c/li\u003e\n\u003cli\u003eFixed ABI tag generation for CPython 3.13a1 on Windows (PR by Sam Gross)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\nthe \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.44.0 (2024-08-04)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e\nitself\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7855525de4093257e7bfb434877265e227356566\"\u003e\u003ccode\u003e7855525\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d343391c20f8f6cc89a61a6f1573522c59d3d7a3\"\u003e\u003ccode\u003ed343391\u003c/code\u003e\u003c/a\u003e Fixed wrong wheel file names in converted pure-Python eggs/wininsts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d78f0e372199f8294556345d867af4d3cf118418\"\u003e\u003ccode\u003ed78f0e3\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/f064c699209e36ec2948537b7cadabf84a110c30\"\u003e\u003ccode\u003ef064c69\u003c/code\u003e\u003c/a\u003e Added license files for vendored \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/68387afcd33cb514a4da811d2fc5de73c8797e48\"\u003e\u003ccode\u003e68387af\u003c/code\u003e\u003c/a\u003e Only configure setuptools logging if bdist_wheel is imported (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/641\"\u003e#641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c81f5c954a8ca7698e6df9de39cf0013295949fa\"\u003e\u003ccode\u003ec81f5c9\u003c/code\u003e\u003c/a\u003e Refactored the \u003ccode\u003ewheel convert\u003c/code\u003e command to not require setuptools (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/640\"\u003e#640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e43464d32feaddddb235ffe21b4bf13c1193465d\"\u003e\u003ccode\u003ee43464d\u003c/code\u003e\u003c/a\u003e Adjusted target Python versions in GitHub CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e9894e71bc62e5808710bc8c2c268de51aef52d4\"\u003e\u003ccode\u003ee9894e7\u003c/code\u003e\u003c/a\u003e Tweaked pytest settings to make the tracebacks easier to read\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/baf6bf89562cb42a0ca71cc1e804600b161952eb\"\u003e\u003ccode\u003ebaf6bf8\u003c/code\u003e\u003c/a\u003e Removed Cirrus CI configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/28c1ba1e2a6d08edc03c73e29293a571888981f9\"\u003e\u003ccode\u003e28c1ba1\u003c/code\u003e\u003c/a\u003e Improved compatibility with future versions of \u003ccode\u003esetuptools\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.40.0...0.45.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 rec...\n\n_Description has been truncated_","html_url":"https://github.com/hibare/Moni/pull/725","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibare%2FMoni/issues/725","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/725/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":"/mobile/docs","pr_created_at":"2025-08-07T06:30:13.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"3299176906","node_id":"PR_kwDODbCg0c6ihL6t","number":1740,"state":"open","title":"build(deps): bump uritemplate from 4.1.1 to 4.2.0 in /mobile/docs","user":"dependabot[bot]","labels":["dependencies","python","stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-08-07T06:30:13.000Z","updated_at":"2025-09-13T09:15:02.562Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/mobile/docs","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/vikaschoudhary16/envoy/pull/1740","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vikaschoudhary16%2Fenvoy/issues/1740","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1740/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-08-05T20:37:14.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2722348907","node_id":"PR_kwDOBffv3c6iQ79r","number":2013,"state":"closed","title":"build(deps): bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-05T20:43:05.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-05T20:37:14.000Z","updated_at":"2025-08-05T20:43:08.000Z","time_to_close":351,"merged_at":"2025-08-05T20:43:05.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/snarfed/bridgy-fed/pull/2013","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/snarfed%2Fbridgy-fed/issues/2013","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2013/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-08-01T11:02:52.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2712859670","node_id":"PR_kwDOGLHsfc6hsvQW","number":4476,"state":"open","title":"Bump the ofe-minor-and-patch-updates group across 1 directory with 47 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-01T11:02:52.000Z","updated_at":"2025-08-01T11:02:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":47,"packages":[{"name":"argcomplete","old_version":"3.6.1","new_version":"3.6.2","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"asgiref","old_version":"3.8.1","new_version":"3.9.1","repository_url":"https://github.com/django/asgiref"},{"name":"astroid","old_version":"3.3.9","new_version":"3.3.11","repository_url":"https://github.com/pylint-dev/astroid"},{"name":"certifi","old_version":"2025.1.31","new_version":"2025.7.14","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.1.8","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"crispy-bootstrap5","old_version":"2025.4","new_version":"2025.6","repository_url":"https://github.com/django-crispy-forms/crispy-bootstrap5"},{"name":"cryptography","old_version":"45.0.3","new_version":"45.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"dill","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"django","old_version":"5.1.10","new_version":"5.2.4","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.6.0","new_version":"65.10.0","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-crispy-forms","old_version":"2.3","new_version":"2.4","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.25.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.166.0","new_version":"2.177.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.40.3","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-artifact-registry","old_version":"1.15.2","new_version":"1.16.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-secret-manager","old_version":"2.22.1","new_version":"2.24.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-build","old_version":"3.31.0","new_version":"3.31.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-billing","old_version":"1.16.2","new_version":"1.16.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-pubsub","old_version":"2.29.0","new_version":"2.31.1","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-compute","old_version":"1.29.0","new_version":"1.33.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.1.1","new_version":"3.2.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.5.0","new_version":"1.7.1","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"googleapis-common-protos","old_version":"1.69.2","new_version":"1.70.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.69.0","new_version":"1.74.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.69.0","new_version":"1.74.0"},{"name":"identify","old_version":"2.6.9","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"lazy-object-proxy","old_version":"1.10.0","new_version":"1.11.0","repository_url":"https://github.com/ionelmc/python-lazy-object-proxy"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.2","repository_url":"https://github.com/Instagram/LibCST"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"oauthlib","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/oauthlib/oauthlib"},{"name":"path","old_version":"17.1.0","new_version":"17.1.1","repository_url":"https://github.com/jaraco/path"},{"name":"platformdirs","old_version":"4.3.7","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pylint","old_version":"3.3.6","new_version":"3.3.7","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pylint-plugin-utils","old_version":"0.8.2","new_version":"0.9.0","repository_url":"https://github.com/PyCQA/pylint-plugin-utils"},{"name":"rpds-py","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"rsa","old_version":"4.9","new_version":"4.9.1","repository_url":"https://github.com/sybrenstuvel/python-rsa"},{"name":"ruamel-yaml","old_version":"0.18.10","new_version":"0.18.14"},{"name":"setuptools-rust","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/PyO3/setuptools-rust"},{"name":"tomlkit","old_version":"0.13.2","new_version":"0.13.3","repository_url":"https://github.com/sdispater/tomlkit"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.14.1","repository_url":"https://github.com/python/typing_extensions"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"uvicorn","old_version":"0.34.0","new_version":"0.35.0","repository_url":"https://github.com/encode/uvicorn"},{"name":"virtualenv","old_version":"20.30.0","new_version":"20.32.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"zipp","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group with 47 updates in the /community/front-end/ofe directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.1` | `3.6.2` |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.9.1` |\n| [astroid](https://github.com/pylint-dev/astroid) | `3.3.9` | `3.3.11` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.1.31` | `2025.7.14` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [click](https://github.com/pallets/click) | `8.1.8` | `8.2.1` |\n| [crispy-bootstrap5](https://github.com/django-crispy-forms/crispy-bootstrap5) | `2025.4` | `2025.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.3` | `45.0.5` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.9` | `0.4.0` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [django](https://github.com/django/django) | `5.1.10` | `5.2.4` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.6.0` | `65.10.0` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.3` | `2.4` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.24.2` | `2.25.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.166.0` | `2.177.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.40.3` |\n| [google-cloud-artifact-registry](https://github.com/googleapis/google-cloud-python) | `1.15.2` | `1.16.1` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.22.1` | `2.24.0` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.0` | `3.31.3` |\n| [google-cloud-billing](https://github.com/googleapis/google-cloud-python) | `1.16.2` | `1.16.3` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.29.0` | `2.31.1` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.29.0` | `1.33.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.1.1` | `3.2.0` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.5.0` | `1.7.1` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.69.2` | `1.70.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.69.0` | `1.74.0` |\n| [grpcio-status](https://grpc.io) | `1.69.0` | `1.74.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.9` | `2.6.12` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.25.0` |\n| [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) | `1.10.0` | `1.11.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.2` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [oauthlib](https://github.com/oauthlib/oauthlib) | `3.2.2` | `3.3.1` |\n| [path](https://github.com/jaraco/path) | `17.1.0` | `17.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.7` | `4.3.8` |\n| [pylint](https://github.com/pylint-dev/pylint) | `3.3.6` | `3.3.7` |\n| [pylint-plugin-utils](https://github.com/PyCQA/pylint-plugin-utils) | `0.8.2` | `0.9.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.24.0` | `0.26.0` |\n| [rsa](https://github.com/sybrenstuvel/python-rsa) | `4.9` | `4.9.1` |\n| ruamel-yaml | `0.18.10` | `0.18.14` |\n| [setuptools-rust](https://github.com/PyO3/setuptools-rust) | `1.11.0` | `1.11.1` |\n| [tomlkit](https://github.com/sdispater/tomlkit) | `0.13.2` | `0.13.3` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.14.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [uvicorn](https://github.com/encode/uvicorn) | `0.34.0` | `0.35.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.30.0` | `20.32.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.21.0` | `3.23.0` |\n\n\nUpdates `argcomplete` from 3.6.1 to 3.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\nThis reverts a regression introduced in zsh tab completion configurations utilizing multiple matchers.\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/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.6.2 (2025-04-02)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRevert “zsh: skip repeat Python runs in the same completion run” This\nreverts a regression introduced in zsh tab completion configurations\nutilizing multiple matchers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a0143a96b4f26f363cfb5165e93c86c885e0ad12\"\u003e\u003ccode\u003ea0143a9\u003c/code\u003e\u003c/a\u003e v3.6.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/2e5d43e189a7074c7b663978ba68a3ab0fa21f77\"\u003e\u003ccode\u003e2e5d43e\u003c/code\u003e\u003c/a\u003e Reformat file with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/83d36c56739a40126f8cb70413c64ac1f3264ea7\"\u003e\u003ccode\u003e83d36c5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;zsh: skip repeat Python runs in the same completion run\u0026quot;\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.1...v3.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.8.1 to 3.9.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.1 (2025-07-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSkip CPython specific garbage collection test on pypy. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrops support for (end-of-life) Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes an error with conflicting kwargs between AsyncToSync and the wrapped\nfunction. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/471\"\u003e#471\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes Local isolation between asyncio Tasks. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/478\"\u003e#478\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a deadlock in CurrentThreadExecutor with nested async_to_sync →\nsync_to_async → async_to_sync → create_task calls. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe ApplicationCommunicator testing utility will now return the task result\nif it's already completed on send_input and receive_nothing. You may need to\ncatch (e.g.) the asyncio.exceptions.CancelledError if sending messages to\nalready finished consumers in your tests. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fbe9506df140a437921a01ea824dbe51d8c38c24\"\u003e\u003ccode\u003efbe9506\u003c/code\u003e\u003c/a\u003e Releasing 3.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fae2ab10f12858b529b01e6e812abac6aa1f6128\"\u003e\u003ccode\u003efae2ab1\u003c/code\u003e\u003c/a\u003e Fixed deletion of Local values affecting other contexts. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f43e1120286d2b7537547603a1534569e8d8f1a6\"\u003e\u003ccode\u003ef43e112\u003c/code\u003e\u003c/a\u003e Adjust changelog for ApplicationCommunicator updates. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/f22bea26ff268c26253e827b127be76b61a612cf\"\u003e\u003ccode\u003ef22bea2\u003c/code\u003e\u003c/a\u003e Skip garbage collection test on PyPy (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fc0599e122edcde0f84962b219ea591428124106\"\u003e\u003ccode\u003efc0599e\u003c/code\u003e\u003c/a\u003e Releasing 3.9.0. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b126e0c01144bd980937b658dd6eaf236150fe63\"\u003e\u003ccode\u003eb126e0c\u003c/code\u003e\u003c/a\u003e Removed unneeded typing workaround (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ef1678a65b891ef838525d1f3a658875acb9018a\"\u003e\u003ccode\u003eef1678a\u003c/code\u003e\u003c/a\u003e Migrate work for finished \u003ccode\u003eCurrentThreadExecutor\u003c/code\u003e to previous executor (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/37870f58963c38617a910743ba69311ec8e4e0d0\"\u003e\u003ccode\u003e37870f5\u003c/code\u003e\u003c/a\u003e Fixed reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ec6f666621407674e80d039bf235ba2662193bdb\"\u003e\u003ccode\u003eec6f666\u003c/code\u003e\u003c/a\u003e Add MicroPie framework to \u003ccode\u003eimplementations.rst\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/5eff04dce46b74172a1d6d1c5b02409f0afe33b6\"\u003e\u003ccode\u003e5eff04d\u003c/code\u003e\u003c/a\u003e Lazily bind ApplicationCommunicator to event loop (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astroid` from 3.3.9 to 3.3.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/releases\"\u003eastroid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pylint-dev/astroid/blob/main/ChangeLog\"\u003eastroid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.11?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-07-13\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e (\u003ccode\u003eextract_node(\u0026quot;__()\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2734\"\u003e#2734\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash when parsing a slice called in a decorator on a function that is also decorated with\na known \u003ccode\u003esix\u003c/code\u003e decorator.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2721\"\u003e#2721\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eWhat's New in astroid 3.3.10?\u003c/h1\u003e\n\u003cp\u003eRelease date: 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid importing submodules sharing names with standard library modules.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2684\"\u003e#2684\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where \u003ccode\u003epylint code.custom_extension\u003c/code\u003e would analyze \u003ccode\u003ecode.py\u003c/code\u003e or \u003ccode\u003ecode.pyi\u003c/code\u003e instead if they existed.\u003c/p\u003e\n\u003cp\u003eCloses \u003ca href=\"https://redirect.github.com/pylint-dev/pylint/issues/3631\"\u003epylint-dev/pylint#3631\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/fbea510b9e7604be0afea5b25ca6b51a73f09870\"\u003e\u003ccode\u003efbea510\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.11, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2777\"\u003e#2777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/bf3977c3793be0e2111220864e02f8040fcaeb7f\"\u003e\u003ccode\u003ebf3977c\u003c/code\u003e\u003c/a\u003e Include subclasses of standard property classes as property decorators (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2735\"\u003e#2735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/18f96261f4736a10fc7b6824c4d0fed922b05c4b\"\u003e\u003ccode\u003e18f9626\u003c/code\u003e\u003c/a\u003e Use custom Github App to authenticate backport job (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2751\"\u003e#2751\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2752\"\u003e#2752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c1d9c73fd724dd1dd7ec64195f93e86be32414c6\"\u003e\u003ccode\u003ec1d9c73\u003c/code\u003e\u003c/a\u003e Improve backport job permissions (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2750\"\u003e#2750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/b1adb1c1b58e1f7a13751bc52c33d124364633be\"\u003e\u003ccode\u003eb1adb1c\u003c/code\u003e\u003c/a\u003e [Backport maintenance/3.3.x] Initial fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2747\"\u003e#2747\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/0aaf2131e8694c0009781b4144685d1c84d1f36a\"\u003e\u003ccode\u003e0aaf213\u003c/code\u003e\u003c/a\u003e [fix] Prevent crash on slice decorator for 'six' decorated function (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2738\"\u003e#2738\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/c8bd28a53b919f1c0be4f71f3c6de3d26073d520\"\u003e\u003ccode\u003ec8bd28a\u003c/code\u003e\u003c/a\u003e [fix] Crash when parsing an empty arbitrary expression with \u003ccode\u003eextract_node\u003c/code\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/a3623682a5e1e07f4f331b6b0a5f77e257d81b96\"\u003e\u003ccode\u003ea362368\u003c/code\u003e\u003c/a\u003e Bump astroid to 3.3.10, update changelog (\u003ca href=\"https://redirect.github.com/pylint-dev/astroid/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/d87efc6185573da387df4e5fbe5a8c3cca185487\"\u003e\u003ccode\u003ed87efc6\u003c/code\u003e\u003c/a\u003e Pick correct file if two files with the same name but with different extensio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pylint-dev/astroid/commit/e29d7267a0053766415f7f45ffa839c335776a6b\"\u003e\u003ccode\u003ee29d726\u003c/code\u003e\u003c/a\u003e [setuptools] Upgrade the license handling for latest setuptools\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pylint-dev/astroid/compare/v3.3.9...v3.3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.1.31 to 2025.7.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.01.31...2025.07.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.1 to 3.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.8 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.8...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `crispy-bootstrap5` from 2025.4 to 2025.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/releases\"\u003ecrispy-bootstrap5's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/blob/main/CHANGELOG.md\"\u003ecrispy-bootstrap5's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.6 (2025-06-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e\u0026lt;legend\u0026gt;\u003c/code\u003e elements now have \u003ccode\u003efs-6\u003c/code\u003e class so they are the same font size as \u003ccode\u003e\u0026lt;labels\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/c9578e9291e3c77998e7f8ec6c089719685ed678\"\u003e\u003ccode\u003ec9578e9\u003c/code\u003e\u003c/a\u003e 2025.6 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/commit/a6346ecc8c6c7936bfda5d8c290b3cbb332f9009\"\u003e\u003ccode\u003ea6346ec\u003c/code\u003e\u003c/a\u003e Make legend font-size the same as label font-size (\u003ca href=\"https://redirect.github.com/django-crispy-forms/crispy-bootstrap5/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/crispy-bootstrap5/compare/2025.4...2025.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.3 to 45.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003cp\u003e45.0.4 - 2025-06-09\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed decrypting PKCS#8 files encrypted with SHA1-RC4. (This is not\nconsidered secure, and is supported only for backwards compatibility.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/678c0c59f743e3b301fbd34f1d26112db0cc2216\"\u003e\u003ccode\u003e678c0c5\u003c/code\u003e\u003c/a\u003e prepare for 45.0.4 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13058\"\u003e#13058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.3...45.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dill` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/16eb90b0895fa60c751bc4bdc18dbdf9a6b31a2e\"\u003e\u003ccode\u003e16eb90b\u003c/code\u003e\u003c/a\u003e tag: 0.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/cd7a5a8242a7039eb0c13320843dbb170b3b88ab\"\u003e\u003ccode\u003ecd7a5a8\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.5 to 3.1.6 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/0717bd1efe2ddd487762a472cb63253a504a760b\"\u003e\u003ccode\u003e0717bd1\u003c/code\u003e\u003c/a\u003e move travis build of 3.9 to focal (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/599265e0a0cec406e245808105b63987077f53f2\"\u003e\u003ccode\u003e599265e\u003c/code\u003e\u003c/a\u003e fix CodeType support for PyPy3.11 7.3.19+ (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/acc49cfe97e333a8133280b909f09c723cc0fec5\"\u003e\u003ccode\u003eacc49cf\u003c/code\u003e\u003c/a\u003e update docs requirements; CI for pypy3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/a3d129f9c8aceb856a7e50277af4b7fef6ab9202\"\u003e\u003ccode\u003ea3d129f\u003c/code\u003e\u003c/a\u003e support pypy-3.11 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/701\"\u003e#701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/7f678e733d7eca682dd367dd68231451141b27ea\"\u003e\u003ccode\u003e7f678e7\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.5 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/5adb4445d630ba067329246e9966b420ccbfbb4d\"\u003e\u003ccode\u003e5adb444\u003c/code\u003e\u003c/a\u003e updated copyright for 2025 (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/696\"\u003e#696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/c8b8c5775e572309a5ea787d9f897facfc9280d5\"\u003e\u003ccode\u003ec8b8c57\u003c/code\u003e\u003c/a\u003e fix typo in requirements (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/uqfoundation/dill/commit/e3c85c82c76dfa5abb476949279f5709395f0547\"\u003e\u003ccode\u003ee3c85c8\u003c/code\u003e\u003c/a\u003e Bump starlette from 0.37.2 to 0.40.0 in /docs (\u003ca href=\"https://redirect.github.com/uqfoundation/dill/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/uqfoundation/dill/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.1.10 to 5.2.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c941d0deec0ea08a30670be0fac879f2372f071b\"\u003e\u003ccode\u003ec941d0d\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.4 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47a618d45c6e40dd59f4cdd46fd5fc7d11626f6d\"\u003e\u003ccode\u003e47a618d\u003c/code\u003e\u003c/a\u003e Fixed AttributeError for enterContext() on Python \u0026lt; 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a150160c9fc6ba6220f1e63863b03e7f7978b747\"\u003e\u003ccode\u003ea150160\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36464\"\u003e#36464\u003c/a\u003e -- Fixed \u0026quot;__in\u0026quot; tuple lookup on backends lacking native ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/db5da3c91c3122300680c4e7200a463273a5351e\"\u003e\u003ccode\u003edb5da3c\u003c/code\u003e\u003c/a\u003e [5.2.x] Clarified that only latest dependency versions are valid for security...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/359af3779a66281361aff50629c25e81fcfec048\"\u003e\u003ccode\u003e359af37\u003c/code\u003e\u003c/a\u003e [5.2.x] Added guidance on AI-assisted security reports to docs/internals/secu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1d89691c7481fbcef6a7bc396e41a651372c1cf3\"\u003e\u003ccode\u003e1d89691\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36453\"\u003e#36453\u003c/a\u003e -- Made When.condition resolve with for_save=False.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4de4edf2c05cc80c514c989db480f2fe23ad5ee2\"\u003e\u003ccode\u003e4de4edf\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36447\"\u003e#36447\u003c/a\u003e -- Selected preferred media type based on quality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f5cc6a888b60e0f79415cdd206cedbcc441eed82\"\u003e\u003ccode\u003ef5cc6a8\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected jsonfield fieldlookup references.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/538616136be0f9c29f9122984a29e2c0a316958d\"\u003e\u003ccode\u003e5386161\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36463\"\u003e#36463\u003c/a\u003e -- Fixed grammar in docs/intro/contributing.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e3b2370795d8373c62b799b7c9fa3fef1c0a2bb1\"\u003e\u003ccode\u003ee3b2370\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36454\"\u003e#36454\u003c/a\u003e -- Fixed typo in docs/intro/tutorial08.txt.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.10...5.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.6.0 to 65.10.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.3 to 2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4 (2025-04-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/b3f1d2255be531bba4acb67311a5d3c00dbd9973\"\u003e\u003ccode\u003eb3f1d22\u003c/code\u003e\u003c/a\u003e 2.4 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ac2479e16f48c265897acd2ce2455af6ad9840ef\"\u003e\u003ccode\u003eac2479e\u003c/code\u003e\u003c/a\u003e Update GitHub action versions in workflows. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/bb7030a9a07f327bc725a62341ae0e14526f82e6\"\u003e\u003ccode\u003ebb7030a\u003c/code\u003e\u003c/a\u003e Confirmed Django 5.2 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/a4fb3c7be1129cbd0de7895413cdb926fbb83d80\"\u003e\u003ccode\u003ea4fb3c7\u003c/code\u003e\u003c/a\u003e Pre-commit autoupdate. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1404\"\u003e#1404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7cc89a1a298515b3e934312f8aa1b21617c63a8\"\u003e\u003ccode\u003ee7cc89a\u003c/code\u003e\u003c/a\u003e Added Python 3.13 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1403\"\u003e#1403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.3...2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.24.2 to 2.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.25.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.0...v2.25.1\"\u003e2.25.1\u003c/a\u003e (2025-06-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optional Callback (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e3206c01\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.1rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.0...v2.25.1rc0\"\u003e2.25.1rc0\u003c/a\u003e (2025-06-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optional Callback (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e3206c01\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2...v2.25.0\"\u003e2.25.0\u003c/a\u003e (2025-05-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e118bd96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve issue where pre-release versions of dependencies are installed (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/808\"\u003e#808\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e1ca7973\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.0rc1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e118bd96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve issue where pre-release versions of dependencies are installed (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/808\"\u003e#808\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e1ca7973\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.25.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2....2.25.0rc0\"\u003e2.25.0rc0\u003c/a\u003e (2025-04-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.0...v2.25.1\"\u003e2.25.1\u003c/a\u003e (2025-06-02)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optional Callback (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e3206c01\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2...v2.25.0\"\u003e2.25.0\u003c/a\u003e (2025-05-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e118bd96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e70697a3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolve issue where pre-release versions of dependencies are installed (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/808\"\u003e#808\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e1ca7973\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/2c983853e930d1ad4a3ece6b6b55a6dc72206a17\"\u003e\u003ccode\u003e2c98385\u003c/code\u003e\u003c/a\u003e chore(main): release 2.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/825\"\u003e#825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/3206c0170dda80a613bf257ebcf3b78c1a20465f\"\u003e\u003ccode\u003e3206c01\u003c/code\u003e\u003c/a\u003e fix: Allow BackgroundConsumer To Inform Caller of Fatal Exceptions with Optio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/225bf75020ed3bda5f68b2dbd99a91499dd4acc9\"\u003e\u003ccode\u003e225bf75\u003c/code\u003e\u003c/a\u003e chore(main): release 2.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/811\"\u003e#811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/118bd96f3907234351972409834ab5309cdfcee4\"\u003e\u003ccode\u003e118bd96\u003c/code\u003e\u003c/a\u003e feat: Add protobuf runtime version to \u003ccode\u003ex-goog-api-client\u003c/code\u003e header (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/66d84a3a9ef0ab0c2124a1bf12cc3c45c2393e74\"\u003e\u003ccode\u003e66d84a3\u003c/code\u003e\u003c/a\u003e test: fix BackgroundConsumer error log (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/814\"\u003e#814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/8da1fa9b160b7c9c159fecc698eede498df91f78\"\u003e\u003ccode\u003e8da1fa9\u003c/code\u003e\u003c/a\u003e chore(python): remove .gitignore from templates (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/815\"\u003e#815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1ca7973a395099403be1a99c7c4583a8f22d5d8e\"\u003e\u003ccode\u003e1ca7973\u003c/code\u003e\u003c/a\u003e fix: resolve issue where pre-release versions of dependencies are installed (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/70697a3e39c389768e724fddacb3c9b97d609384\"\u003e\u003ccode\u003e70697a3\u003c/code\u003e\u003c/a\u003e feat: support dynamic retry backoff values (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/793\"\u003e#793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.24.2...v2.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.166.0 to 2.177.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.177.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.176.0...v2.177.0\"\u003e2.177.0\u003c/a\u003e (2025-07-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/90d92b4dedbe4d3c562e81095832f6620af50320\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/90d92b4dedbe4d3c562e81095832f6620af50320\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadsenseplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/70cde9e2f6f37e4f894d61ec7560ec006c90d275\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/70cde9e2f6f37e4f894d61ec7560ec006c90d275\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fef1ed967fb47272f82a7309454e477959f6272e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fef1ed967fb47272f82a7309454e477959f6272e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticsadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1609c8ffe2d28a36f3f128d823d7d0e499794843\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1609c8ffe2d28a36f3f128d823d7d0e499794843\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f4e40100db38312ab6213c8af955d25b94ed8c87\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f4e40100db38312ab6213c8af955d25b94ed8c87\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapphub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d192cdf02d0e2468454bf20048c6595313b2a17f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d192cdf02d0e2468454bf20048c6595313b2a17f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2d03602be0079c3e3aab99982f2a3f570399c567\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2d03602be0079c3e3aab99982f2a3f570399c567\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebeyondcorp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/992f2f231e390b30f5a42b954f2d615595385d8d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/992f2f231e390b30f5a42b954f2d615595385d8d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2bf379026a8e633e53221accbf12b51354b763b5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2bf379026a8e633e53221accbf12b51354b763b5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echromemanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6a2c4a5ea84185eafc96baecf93f8d05ef662bb0\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6a2c4a5ea84185eafc96baecf93f8d05ef662bb0\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecivicinfo:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/38e107ad9417f213b23542c7cddeeff3aef23416\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/38e107ad9417f213b23542c7cddeeff3aef23416\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudasset:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0d243636fd6ccf64038513819abd5e6709f4edc7\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0d243636fd6ccf64038513819abd5e6709f4edc7\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudbilling:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/68858fd5140496a62a29ba6ac24ca86b8d5e0812\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/68858fd5140496a62a29ba6ac24ca86b8d5e0812\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0670bbe7c2f2047aea20bb902ac8d971dd4761be\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0670bbe7c2f2047aea20bb902ac8d971dd4761be\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0a77325ff1334cbd9bdc633401995c82dcdfa4e6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0a77325ff1334cbd9bdc633401995c82dcdfa4e6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/6844949fa0562840b1157e81809f05ccdb8e9940\"\u003e6844949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0a4db90998f12781fe6cf1baae2b9b1d5883ee6f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0a4db90998f12781fe6cf1baae2b9b1d5883ee6f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenteraiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/39f0f5a371ec5ea99d530855004af028f8ac9819\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/39f0f5a371ec5ea99d530855004af028f8ac9819\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6cd0f3b819b900a4893a460041e31915452ec4ad\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6cd0f3b819b900a4893a460041e31915452ec4ad\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/1a80b7e383841018c9e5e6eaa22e30b9227cd075\"\u003e1a80b7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4476","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4476","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4476/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":"/backend","pr_created_at":"2025-08-01T01:03:01.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2711622847","node_id":"PR_kwDODVj4p86hoBS_","number":723,"state":"closed","title":"chore(deps): bump the python group in /backend with 8 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["hibare"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-08-08T00:28:51.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-01T01:03:01.000Z","updated_at":"2025-08-08T00:28:51.000Z","time_to_close":602750,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":8,"packages":[{"name":"build","old_version":"1.0.3","new_version":"1.2.2.post1","repository_url":"https://github.com/pypa/build"},{"name":"click","old_version":"8.1.3","new_version":"8.2.1","repository_url":"https://github.com/pallets/click"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.0","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"pycodestyle","old_version":"2.12.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyproject-hooks","old_version":"1.0.0","new_version":"1.2.0","repository_url":"https://github.com/pypa/pyproject-hooks"},{"name":"tomli","old_version":"2.0.1","new_version":"2.2.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"},{"name":"wheel","old_version":"0.40.0","new_version":"0.45.1","repository_url":"https://github.com/pypa/wheel"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the python group in /backend with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [build](https://github.com/pypa/build) | `1.0.3` | `1.2.2.post1` |\n| [click](https://github.com/pallets/click) | `8.1.3` | `8.2.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.0` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.12.0` | `2.14.0` |\n| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.0.0` | `1.2.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.0.1` | `2.2.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n| [wheel](https://github.com/pypa/wheel) | `0.40.0` | `0.45.1` |\n\nUpdates `build` from 1.0.3 to 1.2.2.post1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2.post1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eThis release only makes metadata (Python 3.13 classifier), docs, and test suite changes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: add Python 3.13 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/815\"\u003epypa/build#815\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: mention conda-forge name in README by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/816\"\u003epypa/build#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add a missing ` in README by \u003ca href=\"https://github.com/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests: fix under pyproject-hooks 1.2 by \u003ca href=\"https://github.com/layday\"\u003e\u003ccode\u003e@​layday\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/824\"\u003epypa/build#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add PyPI attestations by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/821\"\u003epypa/build#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: 1.2.2.post1 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/build/pull/820\"\u003epypa/build#820\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/SigureMo\"\u003e\u003ccode\u003e@​SigureMo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/817\"\u003epypa/build#817\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.2.2...1.2.2.post1\"\u003ehttps://github.com/pypa/build/compare/1.2.2...1.2.2.post1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/764\"\u003e#764\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/763\"\u003e#763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/782\"\u003e#782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/807\"\u003e#807\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/build/issues/813\"\u003e#813\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/carlwgeorge\"\u003e\u003ccode\u003e@​carlwgeorge\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/808\"\u003epypa/build#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/build/pull/804\"\u003epypa/build#804\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/build/compare/1.2.1...1.2.2\"\u003ehttps://github.com/pypa/build/compare/1.2.1...1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e+++++++++\nChangelog\n+++++++++\u003c/p\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.0 (2024-03-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--installer\u003c/code\u003e option, supporting \u003ccode\u003epip\u003c/code\u003e and \u003ccode\u003euv\u003c/code\u003e. Added \u003ccode\u003euv\u003c/code\u003e\nextra.\n(PR :pr:\u003ccode\u003e751\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove console output and provide \u003ccode\u003e-v\u003c/code\u003e for dependency installation\n(PR :pr:\u003ccode\u003e749\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid compiling unused bytecode when using \u003ccode\u003epip\u003c/code\u003e\n(PR :pr:\u003ccode\u003e752\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.7\n(PR :pr:\u003ccode\u003e743\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.1.1 (2024-02-29)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed invoking outer pip from user site packages\n(PR :pr:\u003ccode\u003e746\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e745\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrected the minimum pip version required to use an outer pip\n(PR :pr:\u003ccode\u003e746\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e745\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e1.1.0 (2024-02-29)\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/pypa/build/commit/2f667024a90718da24c5bdfdb264944436adf82e\"\u003e\u003ccode\u003e2f66702\u003c/code\u003e\u003c/a\u003e chore: 1.2.2.post1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0580c6d125fd5479dae3dde36923bfd9b5220a37\"\u003e\u003ccode\u003e0580c6d\u003c/code\u003e\u003c/a\u003e ci: add PyPI attestations (\u003ca href=\"https://redirect.github.com/pypa/build/issues/821\"\u003e#821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/e0e911cc895ca22559be2b80b04be27e33220b87\"\u003e\u003ccode\u003ee0e911c\u003c/code\u003e\u003c/a\u003e tests: fix  under pyproject-hooks 1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a73ecbdf16d8a8abb44cbbe95e9ab5f8f2a7c9b9\"\u003e\u003ccode\u003ea73ecbd\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/56b350439e54d164aed89f251dc39eb7536c0b71\"\u003e\u003ccode\u003e56b3504\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/481ca546a5c9f50f255d245fb75d841f2e2e0d4b\"\u003e\u003ccode\u003e481ca54\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/818\"\u003e#818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/025836ae620e22d017396f7712237b8423b1f5c1\"\u003e\u003ccode\u003e025836a\u003c/code\u003e\u003c/a\u003e docs: add a missing ` in README (\u003ca href=\"https://redirect.github.com/pypa/build/issues/817\"\u003e#817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ae373408f0d4541e9ec8ce711b640ad2faddce4e\"\u003e\u003ccode\u003eae37340\u003c/code\u003e\u003c/a\u003e docs: mention conda-forge name in README (\u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f81aac058003f6df7414b19e45c848c8b7ed7c75\"\u003e\u003ccode\u003ef81aac0\u003c/code\u003e\u003c/a\u003e ci: add Python 3.13 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/815\"\u003e#815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/3b0b5d07077473f5da3f038cf7b74cd2b65d2a98\"\u003e\u003ccode\u003e3b0b5d0\u003c/code\u003e\u003c/a\u003e docs: changelog for 1.2.2 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.0.3...1.2.2.post1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.3 to 8.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.1/\"\u003ehttps://pypi.org/project/click/8.2.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/24?closed=1\"\u003ehttps://github.com/pallets/click/milestone/24?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2894\"\u003e#2894\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2897\"\u003e#2897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2906\"\u003e#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2682\"\u003e#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2787\"\u003e#2787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.0/\"\u003ehttps://pypi.org/project/click/8.2.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/en/stable/changes/\"\u003ehttps://click.palletsprojects.com/en/stable/changes/\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/15\"\u003ehttps://github.com/pallets/click/milestone/15\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.7, 3.8,and 3.9. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2588\"\u003e#2588\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pallets/click/issues/2893\"\u003e#2893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2438\"\u003e#2438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2543\"\u003e#2543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2598\"\u003e#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2589\"\u003e#2589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group commands. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2590\"\u003e#2590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe current parser and related classes and methods, are deprecated.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2205\"\u003e#2205\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of \u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any remaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is unneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable deferred evaluation of annotations with \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2270\"\u003e#2270\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating a command's name from a decorated function's name, the suffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2322\"\u003e#2322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within \u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2356\"\u003e#2356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is \u003ccode\u003eFalse\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2509\"\u003e#2509\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra items used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2516\"\u003e#2516\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2517\"\u003e#2517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep stdout and stderr streams independent in \u003ccode\u003eCliRunner\u003c/code\u003e. Always collect stderr output and never raise an exception. Add a new output stream to simulate what the user sees in its terminal. Removes the \u003ccode\u003emix_stderr\u003c/code\u003e parameter in \u003ccode\u003eCliRunner\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2522\"\u003e#2522\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2523\"\u003e#2523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOption.show_envvar\u003c/code\u003e now also shows environment variable in error messages. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2695\"\u003e#2695\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2696\"\u003e#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.close\u003c/code\u003e will be called on exit. This results in all \u003ccode\u003eContext.call_on_close\u003c/code\u003e callbacks and context managers added via \u003ccode\u003eContext.with_resource\u003c/code\u003e to be closed on exit as well. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2680\"\u003e#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eProgressBar(hidden: bool)\u003c/code\u003e to allow hiding the progressbar. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2609\"\u003e#2609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eUserWarning\u003c/code\u003e will be shown when multiple parameters attempt to use the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eOption.envvar\u003c/code\u003e with \u003ccode\u003eOption.flag_value\u003c/code\u003e, the \u003ccode\u003eflag_value\u003c/code\u003e will always be used instead of the value of the environment variable. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2746\"\u003e#2746\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2788\"\u003e#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eChoice.get_invalid_choice_message\u003c/code\u003e method for customizing the invalid choice message. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2621\"\u003e#2621\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2622\"\u003e#2622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf help is shown because \u003ccode\u003eno_args_is_help\u003c/code\u003e is enabled (defaults to \u003ccode\u003eTrue\u003c/code\u003e for groups, \u003ccode\u003eFalse\u003c/code\u003e for commands), the exit code is 2 instead of 0. \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/1489\"\u003e#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eContexts created during shell completion are closed properly, fixing a \u003ccode\u003eResourceWarning\u003c/code\u003e when using \u003ccode\u003eclick.File\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2644\"\u003e#2644\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2800\"\u003e#2800\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2767\"\u003e#2767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclick.edit(filename)\u003c/code\u003e now supports passing an iterable of filenames in case the editor supports editing multiple files at once. Its return type is now also typed: \u003ccode\u003eAnyStr\u003c/code\u003e if \u003ccode\u003etext\u003c/code\u003e is passed, otherwise \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2067\"\u003e#2067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2068\"\u003e#2068\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flag value handling for flag options with a provided type. :issue:\u003ccode\u003e2894\u003c/code\u003e\n:issue:\u003ccode\u003e2897\u003c/code\u003e :pr:\u003ccode\u003e2930\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix shell completion for nested groups. :issue:\u003ccode\u003e2906\u003c/code\u003e :pr:\u003ccode\u003e2907\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFlush \u003ccode\u003esys.stderr\u003c/code\u003e at the end of \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. :issue:\u003ccode\u003e2682\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix EOF handling for stdin input in CliRunner. :issue:\u003ccode\u003e2787\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python 3.7, 3.8, and 3.9. :pr:\u003ccode\u003e2588\u003c/code\u003e :pr:\u003ccode\u003e2893\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse modern packaging metadata with \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e.\n:pr:\u003ccode\u003e2438\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend. :pr:\u003ccode\u003e2543\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;click\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e2598\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eBaseCommand\u003c/code\u003e is deprecated. \u003ccode\u003eCommand\u003c/code\u003e is the base class for all\ncommands. :issue:\u003ccode\u003e2589\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eMultiCommand\u003c/code\u003e is deprecated. \u003ccode\u003eGroup\u003c/code\u003e is the base class for all group\ncommands. :issue:\u003ccode\u003e2590\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe current parser and related classes and methods, are deprecated.\n:issue:\u003ccode\u003e2205\u003c/code\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eOptionParser\u003c/code\u003e and the \u003ccode\u003eparser\u003c/code\u003e module, which is a modified copy of\n\u003ccode\u003eoptparse\u003c/code\u003e in the standard library.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.protected_args\u003c/code\u003e is unneeded. \u003ccode\u003eContext.args\u003c/code\u003e contains any\nremaining arguments while parsing.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eParameter.add_to_parser\u003c/code\u003e (on both \u003ccode\u003eArgument\u003c/code\u003e and \u003ccode\u003eOption\u003c/code\u003e) is\nunneeded. Parsing works directly without building a separate parser.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esplit_arg_string\u003c/code\u003e is moved from \u003ccode\u003eparser\u003c/code\u003e to \u003ccode\u003eshell_completion\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable deferred evaluation of annotations with\n\u003ccode\u003efrom __future__ import annotations\u003c/code\u003e. :pr:\u003ccode\u003e2270\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen generating a command's name from a decorated function's name, the\nsuffixes \u003ccode\u003e_command\u003c/code\u003e, \u003ccode\u003e_cmd\u003c/code\u003e, \u003ccode\u003e_group\u003c/code\u003e, and \u003ccode\u003e_grp\u003c/code\u003e are removed.\n:issue:\u003ccode\u003e2322\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow the \u003ccode\u003etypes.ParamType.name\u003c/code\u003e for \u003ccode\u003etypes.Choice\u003c/code\u003e options within\n\u003ccode\u003e--help\u003c/code\u003e message if \u003ccode\u003eshow_choices=False\u003c/code\u003e is specified.\n:issue:\u003ccode\u003e2356\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not display default values in prompts when \u003ccode\u003eOption.show_default\u003c/code\u003e is\n\u003ccode\u003eFalse\u003c/code\u003e. :pr:\u003ccode\u003e2509\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eget_help_extra\u003c/code\u003e method on \u003ccode\u003eOption\u003c/code\u003e to fetch the generated extra\nitems used in \u003ccode\u003eget_help_record\u003c/code\u003e to render help text. :issue:\u003ccode\u003e2516\u003c/code\u003e\n:pr:\u003ccode\u003e2517\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/fd183b2ced1cb5857784fe7fb22f4982f671f098\"\u003e\u003ccode\u003efd183b2\u003c/code\u003e\u003c/a\u003e release version 8.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/262bdf02288daf9a37b9e815b44acafd62b5c6fe\"\u003e\u003ccode\u003e262bdf0\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2934\"\u003e#2934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/80efdf6c10c51884416d11b3b575f61157af77fa\"\u003e\u003ccode\u003e80efdf6\u003c/code\u003e\u003c/a\u003e Raise an exception on end of input in CliRunner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/cfa6f4ad3e0078db43f866246b483544afa33ed3\"\u003e\u003ccode\u003ecfa6f4a\u003c/code\u003e\u003c/a\u003e Flush sys.stderr when CliRunner finalizes (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f3a4363d1e8383df496adb31f2a6ed037f85380c\"\u003e\u003ccode\u003ef3a4363\u003c/code\u003e\u003c/a\u003e flush sys.stderr when CliRunner.invoke finalizes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7cf06970e40a3144eb963ff34ed7c38934afb40\"\u003e\u003ccode\u003eb7cf069\u003c/code\u003e\u003c/a\u003e fix shell completion for nested groups (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c575d6b466a1e594d5d6df8f0a1c11d7359a821\"\u003e\u003ccode\u003e7c575d6\u003c/code\u003e\u003c/a\u003e parametrize test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ac6a2acfdb4550c35ce69ce54db502ba96c96324\"\u003e\u003ccode\u003eac6a2ac\u003c/code\u003e\u003c/a\u003e Fix shell completion for nested groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/884af5c20fdc95c9c7352df35c37273391464fb9\"\u003e\u003ccode\u003e884af5c\u003c/code\u003e\u003c/a\u003e Fix flag value set when is_flag=True and type is provided (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2930\"\u003e#2930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/4fd2fea0db423d242aedcae0a5f664efe0a93484\"\u003e\u003ccode\u003e4fd2fea\u003c/code\u003e\u003c/a\u003e Fix condition for setting flag value when type is provided\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.3...8.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip-tools` from 7.4.1 to 7.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/pip-tools/releases\"\u003epip-tools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior -- by \u003ca href=\"https://github.com/sethmlarson\"\u003e\u003ccode\u003e@​sethmlarson\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2082\"\u003e#2082\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2083\"\u003e#2083\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies -- by \u003ca href=\"https://github.com/macro1\"\u003e\u003ccode\u003e@​macro1\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2087\"\u003e#2087\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/gkreitz\"\u003e\u003ccode\u003e@​gkreitz\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2176\"\u003e#2176\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2178\"\u003e#2178\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\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as constraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/chrysle\"\u003e\u003ccode\u003e@​chrysle\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2106\"\u003e#2106\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12 -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2188\"\u003e#2188\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to POSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e -- by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2195\"\u003e#2195\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemovals and backward incompatible breaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epip-compile\u003c/code\u003e will now relativize the requirements paths which are recorded in its output.\nPaths are made relative to the working directory.\nThis provides more consistent results across \u003ccode\u003epip\u003c/code\u003e versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/jazzband/pip-tools/blob/main/CHANGELOG.md\"\u003epip-tools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-07-30\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the ordering of format controls to preserve underlying \u003ccode\u003epip\u003c/code\u003e behavior\n-- by {user}\u003ccode\u003esethmlarson\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2082\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003eNoCandidateFound\u003c/code\u003e exception to be compatible with \u003ccode\u003epip \u0026gt;= 24.1\u003c/code\u003e\n-- by {user}\u003ccode\u003echrysle\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2083\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now produces relative paths for editable dependencies\n-- by {user}\u003ccode\u003emacro1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2087\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed crash failures due to incompatibility with \u003ccode\u003epip \u0026gt;= 25.1\u003c/code\u003e\n-- by {user}\u003ccode\u003egkreitz\u003c/code\u003e and {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2176\u003c/code\u003e, {issue}\u003ccode\u003e2178\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-compile\u003c/code\u003e now treats package versions requested on the command line as\nconstraints for the underlying \u003ccode\u003epip\u003c/code\u003e usage.\nThis applies to build deps in addition to normal package requirements.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003echrysle\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2106\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests on and officially supports Python 3.12\n-- by {user}\u003ccode\u003esirosen\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2188\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRequirements file paths in \u003ccode\u003epip-compile\u003c/code\u003e output are now normalized to\nPOSIX-style, even when \u003ccode\u003epip-compile\u003c/code\u003e is run on Windows.\nThis provides more consistent output across various platforms.\u003c/p\u003e\n\u003cp\u003e-- by {user}\u003ccode\u003esirosen\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ePRs and issues:\u003c/em\u003e {issue}\u003ccode\u003e2195\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epip-tools\u003c/code\u003e now tests against and supports \u003ccode\u003epip\u003c/code\u003e up to version \u003ccode\u003e25.1\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/debe5a46b700347adcaacbf6ea3c70209f14a91e\"\u003e\u003ccode\u003edebe5a4\u003c/code\u003e\u003c/a\u003e Update changelog for version 7.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/1c7d9fbe698565a42d272718bfaf2588f71a9224\"\u003e\u003ccode\u003e1c7d9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e from webknjaz/bugfixes/release-env-context-access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/96ed4d2264a4fc0b567aa9e86c5bbbf7f6b3b680\"\u003e\u003ccode\u003e96ed4d2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e from webknjaz/maintenance/release-attestations-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a180dd9cdc9e877313e6a2c24b8919ca2e4f1f8b\"\u003e\u003ccode\u003ea180dd9\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2209\"\u003e#2209\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7f9512a26fc831a4f4d3a54e045fa1bd4c818ac1\"\u003e\u003ccode\u003e7f9512a\u003c/code\u003e\u003c/a\u003e 📝 Link the PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2210\"\u003e#2210\u003c/a\u003e change note to PR \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2149\"\u003e#2149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/396da33d20c0823242826a0b6194878cebfbf349\"\u003e\u003ccode\u003e396da33\u003c/code\u003e\u003c/a\u003e Run the dist build job in PRs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/7b1c22ca849239c04723e404c138307be9f24b3c\"\u003e\u003ccode\u003e7b1c22c\u003c/code\u003e\u003c/a\u003e Fix accessing repo id in the release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/05daad6ecd4724cce7dd1eeba83489d5b48308cd\"\u003e\u003ccode\u003e05daad6\u003c/code\u003e\u003c/a\u003e Drop release attestations for Jazzband upload\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/b4ddd756b5830decaaf9cfd430704e9218ac6c37\"\u003e\u003ccode\u003eb4ddd75\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/pip-tools/issues/2203\"\u003e#2203\u003c/a\u003e from sirosen/use-towncrier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/pip-tools/commit/a136172f88e95c919b4a0bc4962b23da2b032305\"\u003e\u003ccode\u003ea136172\u003c/code\u003e\u003c/a\u003e Add a run of 'changelog-draft' to QA CI jobs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/pip-tools/compare/7.4.1...v7.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pycodestyle` from 2.12.0 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/pycodestyle/blob/main/CHANGES.txt\"\u003epycodestyle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.14.0 (2025-06-20)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix false positive for TypeVar defaults with more than one argument.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1286\"\u003e#1286\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.13.0 (2025-03-29)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1254\"\u003e#1254\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1255\"\u003e#1255\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDrop EOL python 3.8.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1267\"\u003e#1267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eE251: fix false positive for PEP 696 defaults.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1278\"\u003e#1278\u003c/a\u003e.  PR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1279\"\u003e#1279\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.12.1 (2024-08-04)\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProperly preserve escaped \u003ccode\u003e{\u003c/code\u003e and \u003ccode\u003e}\u003c/code\u003e in fstrings in logical lines in 3.12+.\nPR \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1252\"\u003e#1252\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/PyCQA/pycodestyle/commit/814a0d1259444a21ed318e64edaf6a530c2aeeb8\"\u003e\u003ccode\u003e814a0d1\u003c/code\u003e\u003c/a\u003e Release 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/8621e318655267c2a6cfa15bfd3f7cc02a60881f\"\u003e\u003ccode\u003e8621e31\u003c/code\u003e\u003c/a\u003e fix false positive with TypeVar defaults with more than one argument\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/292cdd0a8702b8950c51e11275d7c204267204f1\"\u003e\u003ccode\u003e292cdd0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1285\"\u003e#1285\u003c/a\u003e from PyCQA/sphinx-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/46bc333dc127b73f1af2127bf44dbd74e7bf34cb\"\u003e\u003ccode\u003e46bc333\u003c/code\u003e\u003c/a\u003e add sphinx configuration for rtfd\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/a98638490e3c799efeebf0af638940d5a581b3c9\"\u003e\u003ccode\u003ea986384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/c85e7403c056cc71e85e0781c254f87461ccea6a\"\u003e\u003ccode\u003ec85e740\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1283\"\u003e#1283\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/ae41b3420360a9f6732b316f5746c56146a37932\"\u003e\u003ccode\u003eae41b34\u003c/code\u003e\u003c/a\u003e updates for python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/34fc7f0fe26a4a38ddeee62e0065900e8ed5347f\"\u003e\u003ccode\u003e34fc7f0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/pycodestyle/issues/1280\"\u003e#1280\u003c/a\u003e from PyCQA/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/7182ac8a56cdff4a05305b85e5e140922aaf56ba\"\u003e\u003ccode\u003e7182ac8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] auto fixes from pre-commit.com hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/pycodestyle/commit/1845a9293a36e5ade2a1a5146ecb1716add4f1eb\"\u003e\u003ccode\u003e1845a92\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/pycodestyle/compare/2.12.0...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyproject-hooks` from 1.0.0 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/pyproject-hooks/blob/main/docs/changelog.rst\"\u003epyproject-hooks's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove interoperability with \u003ccode\u003eimportlib.metadata\u003c/code\u003e, fixing a regression\nin setuptools compatibility in 1.1 (PR :pr:\u003ccode\u003e199\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eClean up the \u003ccode\u003e_in_process\u003c/code\u003e directory inside the package from \u003ccode\u003esys.path\u003c/code\u003e\nbefore imporing the backend (PR :pr:\u003ccode\u003e193\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations to the public API.\u003c/li\u003e\n\u003cli\u003eMore careful handling of the \u003ccode\u003ebackend-path\u003c/code\u003e key from \u003ccode\u003epyproject.toml\u003c/code\u003e.\nPrevious versions would load the backend and then check that it was loaded\nfrom the specified path; the new version only loads it from the specified path.\nThe \u003ccode\u003eBackendInvalid\u003c/code\u003e exception is now a synonym for :exc:\u003ccode\u003eBackendUnavailable\u003c/code\u003e,\nand code should move to using the latter name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename package to \u003ccode\u003epyproject_hooks\u003c/code\u003e (from \u003ccode\u003epep517\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRemove deprecated modules (\u003ccode\u003e.build\u003c/code\u003e, \u003ccode\u003e.check\u003c/code\u003e and \u003ccode\u003e.envbuild\u003c/code\u003e).\nUse the \u003ccode\u003ebuild \u0026lt;https://pypa-build.readthedocs.io/en/stable/\u0026gt;\u003c/code\u003e_ project\ninstead for this higher-level functionality of setting up a temporary build\nenvironment.\u003c/li\u003e\n\u003cli\u003eRequire Python 3.7 or above.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etomllib\u003c/code\u003e from the standard library on Python 3.11. \u003ccode\u003epyproject_hooks\u003c/code\u003e\nnow has no external dependencies when installed in Python 3.11.\u003c/li\u003e\n\u003cli\u003eAvoid chaining exceptions when using the fallback implementation for\n:meth:\u003ccode\u003e.prepare_metadata_for_build_wheel\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix propagating error message for :exc:\u003ccode\u003e.BackendInvalid\u003c/code\u003e errors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for end-of-life Pythons. Now requires Python3.6+.\u003c/li\u003e\n\u003cli\u003eRemove support for \u003ccode\u003etoml\u003c/code\u003e package. Now requires \u003ccode\u003etomli\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRely on preferred \u0026quot;files\u0026quot; API on Python 3.9 and later (:issue:\u003ccode\u003e140\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method for pip to check if build_editable hook is supported.\nThis is a private API for now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ev0.11.1\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/pypa/pyproject-hooks/commit/4b7c6d113fb89b755d762a88712c8a6873cddd47\"\u003e\u003ccode\u003e4b7c6d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/205\"\u003e#205\u003c/a\u003e from pypa/prepare-1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/102747081953a43bcbb9304e6319de3bf2166bfc\"\u003e\u003ccode\u003e1027470\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dabe52eac18ef677af262657c97a7689b20fa909\"\u003e\u003ccode\u003edabe52e\u003c/code\u003e\u003c/a\u003e Prepare release notes for 1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/3df91751cb87c01b1fd2584a37ca3c186f126a48\"\u003e\u003ccode\u003e3df9175\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/204\"\u003e#204\u003c/a\u003e from pypa/fix/setuptools-71\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9efaa97258b63108750539e440789a5cada90fd8\"\u003e\u003ccode\u003e9efaa97\u003c/code\u003e\u003c/a\u003e Relax test for build requirements from setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/6b57973c3a8ef919dffecac8d15fd608fc51a271\"\u003e\u003ccode\u003e6b57973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/199\"\u003e#199\u003c/a\u003e from abravalheri/issue-192-take2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/9988edd23921cdf74bed88f7ae1397b1c440f385\"\u003e\u003ccode\u003e9988edd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/pyproject-hooks/issues/196\"\u003e#196\u003c/a\u003e from pypa/sdist-includes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/dba181736a41503f81ed73434143db7537494c76\"\u003e\u003ccode\u003edba1817\u003c/code\u003e\u003c/a\u003e Always use importlib.metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/d68f4d94477f0c20f900b1520ef1a1193e9d4f9d\"\u003e\u003ccode\u003ed68f4d9\u003c/code\u003e\u003c/a\u003e Remove unused dev-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pyproject-hooks/commit/455b77f9a89f3bfded5925ccc15e17d20c9b99cd\"\u003e\u003ccode\u003e455b77f\u003c/code\u003e\u003c/a\u003e Account for importlib_metadata in Python\u0026lt;3.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/pyproject-hooks/compare/v1.0.0...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tomli` from 2.0.1 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hukkin/tomli/blob/master/CHANGELOG.md\"\u003etomli's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed\n\u003cul\u003e\n\u003cli\u003eDon't attempt to compile binary wheels for Python 3.8, 3.9 and 3.10 where cibuildwheel depends on a conflicting Tomli version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003emypyc generated binary wheels for common platforms\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated\n\u003cul\u003e\n\u003cli\u003eInstantiating \u003ccode\u003eTOMLDecodeError\u003c/code\u003e with free-form arguments.\n\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e and \u003ccode\u003epos\u003c/code\u003e arguments should be given.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emsg\u003c/code\u003e, \u003ccode\u003edoc\u003c/code\u003e, \u003ccode\u003epos\u003c/code\u003e, \u003ccode\u003elineno\u003c/code\u003e and \u003ccode\u003ecolno\u003c/code\u003e attributes to \u003ccode\u003eTOMLDecodeError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved\n\u003cul\u003e\n\u003cli\u003ePython 3.7 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eImproved\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003eloads\u003c/code\u003e raise \u003ccode\u003eTypeError\u003c/code\u003e not \u003ccode\u003eAttributeError\u003c/code\u003e on bad input types that do not have the \u003ccode\u003ereplace\u003c/code\u003e attribute.\nImprove error message when \u003ccode\u003ebytes\u003c/code\u003e is received.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eType annotations\n\u003cul\u003e\n\u003cli\u003eType annotate \u003ccode\u003eload\u003c/code\u003e input as \u003ccode\u003etyping.IO[bytes]\u003c/code\u003e (previously \u003ccode\u003etyping.BinaryIO\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/73c3d102eb81fe0d2b87f905df4f740f8878d8da\"\u003e\u003ccode\u003e73c3d10\u003c/code\u003e\u003c/a\u003e Bump version: 2.2.0 → 2.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/7c2368d2cb6c2a49b0fca08765fbba65686efd88\"\u003e\u003ccode\u003e7c2368d\u003c/code\u003e\u003c/a\u003e Don't build wheels for Python versions requiring tomli\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/c48e4e111c8558abcfe141f19fcaada3365f836c\"\u003e\u003ccode\u003ec48e4e1\u003c/code\u003e\u003c/a\u003e Bump version: 2.1.0 → 2.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/76047414ff1a7c150bb10f0a171da13c5e6af743\"\u003e\u003ccode\u003e7604741\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/0724e2ab1858da7f5e05a9bffdb24c33589d951c\"\u003e\u003ccode\u003e0724e2a\u003c/code\u003e\u003c/a\u003e Annotate global constants as Final to speed up compiled code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/149547d2ec5b7d1badf8d0c1ab603735fa9b5a70\"\u003e\u003ccode\u003e149547d\u003c/code\u003e\u003c/a\u003e Create binary wheels with mypyc (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/443a0c1bc5da39b7ed84306912ee1900e6b72e2f\"\u003e\u003ccode\u003e443a0c1\u003c/code\u003e\u003c/a\u003e pre-commit autoupdate and autofix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/48461cfbaf0775c9025720f80d8afa4fa50c0183\"\u003e\u003ccode\u003e48461cf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/240\"\u003e#240\u003c/a\u003e from hukkin/version-2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d6e045b1e6b36c56271d9f003794d915d713f962\"\u003e\u003ccode\u003ed6e045b\u003c/code\u003e\u003c/a\u003e Bump version: 2.0.2 → 2.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hukkin/tomli/commit/d1d6a8571b06b18005af8bf9078c1d37de5353e1\"\u003e\u003ccode\u003ed1d6a85\u003c/code\u003e\u003c/a\u003e Add attributes to TOMLDecodeError. Deprecate free-form \u003ccode\u003e__init__\u003c/code\u003e args (\u003ca href=\"https://redirect.github.com/hukkin/tomli/issues/238\"\u003e#238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hukkin/tomli/compare/2.0.1...2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wheel` from 0.40.0 to 0.45.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/releases\"\u003ewheel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.45.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in the file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to \u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with \u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated module and import the \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e itself\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7\u003c/li\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 24.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed removing build tag with \u003ccode\u003ewheel tags --build \u0026quot;\u0026quot;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing updated \u003ccode\u003eWHEEL\u003c/code\u003e fields after a blank line, causing other tools to ignore them\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack\u003c/code\u003e and \u003ccode\u003ewheel tags\u003c/code\u003e writing \u003ccode\u003eWHEEL\u003c/code\u003e with CRLF line endings or a mix of CRLF and LF\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ewheel pack --build-number \u0026quot;\u0026quot;\u003c/code\u003e not removing build tag from \u003ccode\u003eWHEEL\u003c/code\u003e (above changes by Benjamin Gilbert)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated vendored \u003ccode\u003epackaging\u003c/code\u003e to 23.2\u003c/li\u003e\n\u003cli\u003eFixed ABI tag generation for CPython 3.13a1 on Windows (PR by Sam Gross)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/wheel/blob/main/docs/news.rst\"\u003ewheel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease Notes\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestored the \u003ccode\u003ebdist_wheel\u003c/code\u003e command for compatibility with \u003ccode\u003esetuptools\u003c/code\u003e older than\nv70.1\u003c/li\u003e\n\u003cli\u003eImporting \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e instead of a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.1 (2025-04-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTemporarily restored the \u003ccode\u003ewheel.macosx_libfile\u003c/code\u003e module\n(\u003ccode\u003e[#659](https://github.com/pypa/wheel/issues/659) \u0026lt;https://github.com/pypa/wheel/issues/659\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.46.0 (2025-04-03)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003ebdist_wheel\u003c/code\u003e setuptools command implementation and entry point.\nThe \u003ccode\u003ewheel.bdist_wheel\u003c/code\u003e module is now just an alias to\n\u003ccode\u003esetuptools.command.bdist_wheel\u003c/code\u003e, emitting a deprecation warning on import.\u003c/li\u003e\n\u003cli\u003eRemoved vendored \u003ccode\u003epackaging\u003c/code\u003e in favor of a run-time dependency on it\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.metadata\u003c/code\u003e module private (with a deprecation warning if it's\nimported\u003c/li\u003e\n\u003cli\u003eMade the \u003ccode\u003ewheel.cli\u003c/code\u003e package private (no deprecation warning)\u003c/li\u003e\n\u003cli\u003eFixed an exception when calling the \u003ccode\u003econvert\u003c/code\u003e command with an empty description\nfield\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.1 (2024-11-23)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed pure Python wheels converted from eggs and wininst files having the ABI tag in\nthe file name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.45.0 (2024-11-08)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactored the \u003ccode\u003econvert\u003c/code\u003e command to not need setuptools to be installed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't configure setuptools logging unless running \u003ccode\u003ebdist_wheel\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a redirection from \u003ccode\u003ewheel.bdist_wheel.bdist_wheel\u003c/code\u003e to\n\u003ccode\u003esetuptools.command.bdist_wheel.bdist_wheel\u003c/code\u003e to improve compatibility with\n\u003ccode\u003esetuptools\u003c/code\u003e' latest fixes.\u003c/p\u003e\n\u003cp\u003eProjects are still advised to migrate away from the deprecated  module and import\nthe \u003ccode\u003esetuptools\u003c/code\u003e' implementation explicitly. (PR by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e0.44.0 (2024-08-04)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCanonicalized requirements in METADATA file (PR by Wim Jeantine-Glenn)\u003c/li\u003e\n\u003cli\u003eDeprecated the \u003ccode\u003ebdist_wheel\u003c/code\u003e module, as the code was migrated to \u003ccode\u003esetuptools\u003c/code\u003e\nitself\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/7855525de4093257e7bfb434877265e227356566\"\u003e\u003ccode\u003e7855525\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d343391c20f8f6cc89a61a6f1573522c59d3d7a3\"\u003e\u003ccode\u003ed343391\u003c/code\u003e\u003c/a\u003e Fixed wrong wheel file names in converted pure-Python eggs/wininsts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/d78f0e372199f8294556345d867af4d3cf118418\"\u003e\u003ccode\u003ed78f0e3\u003c/code\u003e\u003c/a\u003e Created a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/f064c699209e36ec2948537b7cadabf84a110c30\"\u003e\u003ccode\u003ef064c69\u003c/code\u003e\u003c/a\u003e Added license files for vendored \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/68387afcd33cb514a4da811d2fc5de73c8797e48\"\u003e\u003ccode\u003e68387af\u003c/code\u003e\u003c/a\u003e Only configure setuptools logging if bdist_wheel is imported (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/641\"\u003e#641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/c81f5c954a8ca7698e6df9de39cf0013295949fa\"\u003e\u003ccode\u003ec81f5c9\u003c/code\u003e\u003c/a\u003e Refactored the \u003ccode\u003ewheel convert\u003c/code\u003e command to not require setuptools (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/640\"\u003e#640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e43464d32feaddddb235ffe21b4bf13c1193465d\"\u003e\u003ccode\u003ee43464d\u003c/code\u003e\u003c/a\u003e Adjusted target Python versions in GitHub CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/e9894e71bc62e5808710bc8c2c268de51aef52d4\"\u003e\u003ccode\u003ee9894e7\u003c/code\u003e\u003c/a\u003e Tweaked pytest settings to make the tracebacks easier to read\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/baf6bf89562cb42a0ca71cc1e804600b161952eb\"\u003e\u003ccode\u003ebaf6bf8\u003c/code\u003e\u003c/a\u003e Removed Cirrus CI configuration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/wheel/commit/28c1ba1e2a6d08edc03c73e29293a571888981f9\"\u003e\u003ccode\u003e28c1ba1\u003c/code\u003e\u003c/a\u003e Improved compatibility with future versions of \u003ccode\u003esetuptools\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/wheel/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/wheel/compare/0.40.0...0.45.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/hibare/Moni/pull/723","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibare%2FMoni/issues/723","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/723/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-07-14T13:57:09.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2664371557","node_id":"PR_kwDOAY6fL86ezxVl","number":3349,"state":"closed","title":"⬆️ Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-07-14T14:18:14.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-14T13:57:09.000Z","updated_at":"2025-07-14T14:18:14.000Z","time_to_close":1265,"merged_at":"2025-07-14T14:18:14.000Z","merged_by":"nikolas","closed_by":null,"dependency_metadata":{"prefix":"⬆️ Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/ccnmtl/footprints/pull/3349","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccnmtl%2Ffootprints/issues/3349","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3349/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-07-07T08:54:29.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2645981078","node_id":"PR_kwDOLLJtpc6dtneW","number":50,"state":"open","title":"Bump the python-packages group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-07T08:54:29.000Z","updated_at":"2025-07-07T08:54:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":9,"packages":[{"name":"django","old_version":"5.2.1","new_version":"5.2.4","repository_url":"https://github.com/django/django"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"ruff","old_version":"0.11.12","new_version":"0.12.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.0","new_version":"5.2.1","repository_url":"https://github.com/sponsors/typeddjango"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"asgiref","old_version":"3.8.1","new_version":"3.9.0","repository_url":"https://github.com/django/asgiref"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.26.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.2.1` | `5.2.4` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.12` | `0.12.2` |\n| [mypy](https://github.com/python/mypy) | `1.16.0` | `1.16.1` |\n| [django-stubs](https://github.com/sponsors/typeddjango) | `5.2.0` | `5.2.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `6.2.1` |\n| [asgiref](https://github.com/django/asgiref) | `3.8.1` | `3.9.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.26.0` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n\n\nUpdates `django` from 5.2.1 to 5.2.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c941d0deec0ea08a30670be0fac879f2372f071b\"\u003e\u003ccode\u003ec941d0d\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.4 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/47a618d45c6e40dd59f4cdd46fd5fc7d11626f6d\"\u003e\u003ccode\u003e47a618d\u003c/code\u003e\u003c/a\u003e Fixed AttributeError for enterContext() on Python \u0026lt; 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a150160c9fc6ba6220f1e63863b03e7f7978b747\"\u003e\u003ccode\u003ea150160\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36464\"\u003e#36464\u003c/a\u003e -- Fixed \u0026quot;__in\u0026quot; tuple lookup on backends lacking native ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/db5da3c91c3122300680c4e7200a463273a5351e\"\u003e\u003ccode\u003edb5da3c\u003c/code\u003e\u003c/a\u003e [5.2.x] Clarified that only latest dependency versions are valid for security...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/359af3779a66281361aff50629c25e81fcfec048\"\u003e\u003ccode\u003e359af37\u003c/code\u003e\u003c/a\u003e [5.2.x] Added guidance on AI-assisted security reports to docs/internals/secu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1d89691c7481fbcef6a7bc396e41a651372c1cf3\"\u003e\u003ccode\u003e1d89691\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36453\"\u003e#36453\u003c/a\u003e -- Made When.condition resolve with for_save=False.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4de4edf2c05cc80c514c989db480f2fe23ad5ee2\"\u003e\u003ccode\u003e4de4edf\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36447\"\u003e#36447\u003c/a\u003e -- Selected preferred media type based on quality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f5cc6a888b60e0f79415cdd206cedbcc441eed82\"\u003e\u003ccode\u003ef5cc6a8\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected jsonfield fieldlookup references.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/538616136be0f9c29f9122984a29e2c0a316958d\"\u003e\u003ccode\u003e5386161\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36463\"\u003e#36463\u003c/a\u003e -- Fixed grammar in docs/intro/contributing.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e3b2370795d8373c62b799b7c9fa3fef1c0a2bb1\"\u003e\u003ccode\u003ee3b2370\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36454\"\u003e#36454\u003c/a\u003e -- Fixed typo in docs/intro/tutorial08.txt.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.1...5.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.11.12 to 0.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Expand \u003ccode\u003eOptional[A]\u003c/code\u003e to \u003ccode\u003eA | None\u003c/code\u003e (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18572\"\u003e#18572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Mark \u003ccode\u003eUP008\u003c/code\u003e fix safe if no comments are in range (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18683\"\u003e#18683\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Fix \u003ccode\u003eC420\u003c/code\u003e to prepend whitespace when needed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18616\"\u003e#18616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF403\u003c/code\u003e panic on attribute or subscription loop variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19042\"\u003e#19042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix \u003ccode\u003eD413\u003c/code\u003e infinite loop for parenthesized docstring (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18930\"\u003e#18930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLW0108\u003c/code\u003e autofix introducing a syntax error when the lambda's body contains an assignment expression (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18678\"\u003e#18678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix false positive on empty tuples (\u003ccode\u003eFURB168\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19058\"\u003e#19058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow more \u003ccode\u003efield\u003c/code\u003e calls from \u003ccode\u003eattrs\u003c/code\u003e (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19021\"\u003e#19021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix syntax error introduced for an empty string followed by a u-prefixed string (\u003ccode\u003eUP025\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18899\"\u003e#18899\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Allow \u003ccode\u003euvx\u003c/code\u003e in shebang line (\u003ccode\u003eEXE003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18967\"\u003e#18967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas\u003c/code\u003e] Avoid flagging \u003ccode\u003ePD002\u003c/code\u003e if \u003ccode\u003epandas\u003c/code\u003e is not imported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18963\"\u003e#18963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid PEP-604 unions with \u003ccode\u003etyping.NamedTuple\u003c/code\u003e (\u003ccode\u003eUP007\u003c/code\u003e, \u003ccode\u003eUP045\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18682\"\u003e#18682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument link between \u003ccode\u003eimport-outside-top-level (PLC0415)\u003c/code\u003e and \u003ccode\u003elint.flake8-tidy-imports.banned-module-level-imports\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18733\"\u003e#18733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix description of the \u003ccode\u003eformat.skip-magic-trailing-comma\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19095\"\u003e#19095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR302\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18988\"\u003e#18988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR312\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18989\"\u003e#18989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Make \u003ccode\u003eANN401\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18974\"\u003e#18974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC100\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18993\"\u003e#18993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC105\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19002\"\u003e#19002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC110\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18975\"\u003e#18975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC210\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18977\"\u003e#18977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC220\u003c/code\u003e, \u003ccode\u003eASYNC221\u003c/code\u003e, and \u003ccode\u003eASYNC222\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18978\"\u003e#18978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC251\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18990\"\u003e#18990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS201\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19017\"\u003e#19017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS604\u003c/code\u003e and \u003ccode\u003eS609\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19049\"\u003e#19049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB028\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19054\"\u003e#19054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB911\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19051\"\u003e#19051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ011\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19055\"\u003e#19055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ901\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19056\"\u003e#19056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make \u003ccode\u003ePYI032\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19061\"\u003e#19061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI014\u003c/code\u003e, \u003ccode\u003ePYI015\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19097\"\u003e#19097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI042\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19101\"\u003e#19101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI059\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19080\"\u003e#19080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI062\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19079\"\u003e#19079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT023\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19104\"\u003e#19104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT030\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19105\"\u003e#19105\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.2\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Expand \u003ccode\u003eOptional[A]\u003c/code\u003e to \u003ccode\u003eA | None\u003c/code\u003e (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18572\"\u003e#18572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Mark \u003ccode\u003eUP008\u003c/code\u003e fix safe if no comments are in range (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18683\"\u003e#18683\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Fix \u003ccode\u003eC420\u003c/code\u003e to prepend whitespace when needed (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18616\"\u003e#18616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF403\u003c/code\u003e panic on attribute or subscription loop variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19042\"\u003e#19042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix \u003ccode\u003eD413\u003c/code\u003e infinite loop for parenthesized docstring (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18930\"\u003e#18930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLW0108\u003c/code\u003e autofix introducing a syntax error when the lambda's body contains an assignment expression (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18678\"\u003e#18678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix false positive on empty tuples (\u003ccode\u003eFURB168\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19058\"\u003e#19058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow more \u003ccode\u003efield\u003c/code\u003e calls from \u003ccode\u003eattrs\u003c/code\u003e (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19021\"\u003e#19021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix syntax error introduced for an empty string followed by a u-prefixed string (\u003ccode\u003eUP025\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18899\"\u003e#18899\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Allow \u003ccode\u003euvx\u003c/code\u003e in shebang line (\u003ccode\u003eEXE003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18967\"\u003e#18967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epandas\u003c/code\u003e] Avoid flagging \u003ccode\u003ePD002\u003c/code\u003e if \u003ccode\u003epandas\u003c/code\u003e is not imported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18963\"\u003e#18963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid PEP-604 unions with \u003ccode\u003etyping.NamedTuple\u003c/code\u003e (\u003ccode\u003eUP007\u003c/code\u003e, \u003ccode\u003eUP045\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18682\"\u003e#18682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument link between \u003ccode\u003eimport-outside-top-level (PLC0415)\u003c/code\u003e and \u003ccode\u003elint.flake8-tidy-imports.banned-module-level-imports\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18733\"\u003e#18733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix description of the \u003ccode\u003eformat.skip-magic-trailing-comma\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19095\"\u003e#19095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR302\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18988\"\u003e#18988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Make \u003ccode\u003eAIR312\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18989\"\u003e#18989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Make \u003ccode\u003eANN401\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18974\"\u003e#18974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC100\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18993\"\u003e#18993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC105\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19002\"\u003e#19002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC110\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18975\"\u003e#18975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC210\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18977\"\u003e#18977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC220\u003c/code\u003e, \u003ccode\u003eASYNC221\u003c/code\u003e, and \u003ccode\u003eASYNC222\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18978\"\u003e#18978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Make \u003ccode\u003eASYNC251\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18990\"\u003e#18990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS201\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19017\"\u003e#19017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Make \u003ccode\u003eS604\u003c/code\u003e and \u003ccode\u003eS609\u003c/code\u003e examples error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19049\"\u003e#19049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB028\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19054\"\u003e#19054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Make \u003ccode\u003eB911\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19051\"\u003e#19051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ011\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19055\"\u003e#19055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-datetimez\u003c/code\u003e] Make \u003ccode\u003eDTZ901\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19056\"\u003e#19056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make \u003ccode\u003ePYI032\u003c/code\u003e example error out-of-the-box (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19061\"\u003e#19061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI014\u003c/code\u003e, \u003ccode\u003ePYI015\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19097\"\u003e#19097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI042\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19101\"\u003e#19101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI059\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19080\"\u003e#19080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePYI062\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19079\"\u003e#19079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT023\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19104\"\u003e#19104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT030\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19105\"\u003e#19105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-quotes\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eQ003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19106\"\u003e#19106\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9bee8376a17401f9736b45fdefffb62edc2f1668\"\u003e\u003ccode\u003e9bee837\u003c/code\u003e\u003c/a\u003e Bump 0.12.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19126\"\u003e#19126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1c6717b149ddfbcd4aa0aee2e160320474392da9\"\u003e\u003ccode\u003e1c6717b\u003c/code\u003e\u003c/a\u003e Filter private symbols from stubs if they are internal types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19121\"\u003e#19121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1b813cd5f1933ab05ba7b96ace798199429c0bd6\"\u003e\u003ccode\u003e1b813cd\u003c/code\u003e\u003c/a\u003e Fix description of the \u003ccode\u003eformat.skip-magic-trailing-comma\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19095\"\u003e#19095\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b00f68a23cedbd3a38fc25bac63638f0f11fc3f0\"\u003e\u003ccode\u003eb00f68a\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Allow more \u003ccode\u003efield\u003c/code\u003e calls from \u003ccode\u003eattrs\u003c/code\u003e (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19021\"\u003e#19021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/710c60f7135879b05f6c05a34085cd7af5c19e7f\"\u003e\u003ccode\u003e710c60f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT023\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19104\"\u003e#19104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/811e25d16e22ca4ce124d9514232211c9a0b27a1\"\u003e\u003ccode\u003e811e25d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003ePT030\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19105\"\u003e#19105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b78af2db4822dc55acbfb1024b30e69fe0262311\"\u003e\u003ccode\u003eb78af2d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-quotes\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eQ003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19106\"\u003e#19106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f36f0677f09b0ed1ba20f583b6f017c4f7d26c8\"\u003e\u003ccode\u003e4f36f06\u003c/code\u003e\u003c/a\u003e Document link between \u003ccode\u003eimport-outside-top-level (PLC0415)\u003c/code\u003e and `lint.flake8-t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2589a2938ee58a1ff1b54a9558807ecb000ccca3\"\u003e\u003ccode\u003e2589a29\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eSIM113\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19109\"\u003e#19109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/26bb8f7b7189558520bb386867579768b5a17347\"\u003e\u003ccode\u003e26bb8f7\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make example error out-of-the-box (\u003ccode\u003eSIM401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/19110\"\u003e#19110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.11.12...0.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/68b8fa097d080c92d30a429bc74de8acd56caf85\"\u003e\u003ccode\u003e68b8fa0\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e253eded9c887630f3f5404c4b9f73f13570476a\"\u003e\u003ccode\u003ee253ede\u003c/code\u003e\u003c/a\u003e Single underscore is not a sunder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19273\"\u003e#19273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9fb5ff66c51bd971d7a6b1260cc0ec9f1b82cc06\"\u003e\u003ccode\u003e9fb5ff6\u003c/code\u003e\u003c/a\u003e Fix properties with setters after deleters (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19248\"\u003e#19248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c20fd7838338cd65d6c7c6e252eda85996cfc98e\"\u003e\u003ccode\u003ec20fd78\u003c/code\u003e\u003c/a\u003e Handle assignment of bound methods in class bodies (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19233\"\u003e#19233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c86480ce51e4bb6db21f4b3f0b3ec8833aafc8ce\"\u003e\u003ccode\u003ec86480c\u003c/code\u003e\u003c/a\u003e Tighten metaclass \u003cstrong\u003ecall\u003c/strong\u003e handling in protocols (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19191\"\u003e#19191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/cb3c6ec6a7aaa96a0e26768a946ac63ea14115f2\"\u003e\u003ccode\u003ecb3c6ec\u003c/code\u003e\u003c/a\u003e Fix crash on partial type used as context (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19216\"\u003e#19216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c39f5e73c47182e51c5d8d488f7cc7301257c974\"\u003e\u003ccode\u003ec39f5e7\u003c/code\u003e\u003c/a\u003e [mypyc] Fixing condition for handling user-defined \u003cstrong\u003edel\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19188\"\u003e#19188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0a4f28431faa18e59d35bc269cb0ea6c00810653\"\u003e\u003ccode\u003e0a4f284\u003c/code\u003e\u003c/a\u003e Fix crash on invalid property inside its own body (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19208\"\u003e#19208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9b079f6592740a51c0e629728eeb0324ad85126f\"\u003e\u003ccode\u003e9b079f6\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1+dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 5.2.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/typeddjango/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.1.1 to 6.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\nonce::CoverageWarning\u003c/p\u003e\n\u003cp\u003eThis fixes most of the bad interactions that are occurring on pytest 8.4 with \u003ccode\u003efilterwarnings=error\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe plugin will check if there already matching rules for the 3 categories\n(\u003ccode\u003eResourceWarning\u003c/code\u003e, \u003ccode\u003ePytestCovWarning\u003c/code\u003e, \u003ccode\u003eCoverageWarning\u003c/code\u003e) and message (\u003ccode\u003eunclosed database in \u0026lt;sqlite3.Connection object at\u003c/code\u003e) before adding the filters.\u003c/p\u003e\n\u003cp\u003eThis means you can have this in your pytest configuration for complete oblivion (not recommended, if that is not clear)::\u003c/p\u003e\n\u003cp\u003efilterwarnings = [\n\u0026quot;error\u0026quot;,\n\u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot;,\n\u0026quot;ignore::PytestCovWarning\u0026quot;,\n\u0026quot;ignore::CoverageWarning\u0026quot;,\n]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/55dbe43f04f839b760ea346e560276d641998c77\"\u003e\u003ccode\u003e55dbe43\u003c/code\u003e\u003c/a\u003e Bump version: 6.2.0 → 6.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/d17e9b765e9832e70fe8101daa2f5f42ce447cc2\"\u003e\u003ccode\u003ed17e9b7\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8964ab7595dd10748cad66376289476049340ea4\"\u003e\u003ccode\u003e8964ab7\u003c/code\u003e\u003c/a\u003e Add a note for this warning disable.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/e932e41e50f37d03a4d600084411661bc1f08ab8\"\u003e\u003ccode\u003ee932e41\u003c/code\u003e\u003c/a\u003e Prevent unimported warnings @ pytest-xdist workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/573379ba34539db32cb3a43222f33b7c304af34a\"\u003e\u003ccode\u003e573379b\u003c/code\u003e\u003c/a\u003e Bring pytest-cov's suprocess management in line with coverage's process_start...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f1884e854f2687ccfe36747a11e7f3352f168f90\"\u003e\u003ccode\u003ef1884e8\u003c/code\u003e\u003c/a\u003e Fix xdist pin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/512c6699010cc0d8145f1f926d876cafba840015\"\u003e\u003ccode\u003e512c669\u003c/code\u003e\u003c/a\u003e Added minium version requirements for pluggin (for new-style hookwrappers). P...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/629ba644a56148d09fe0f2c20602681bc20027a7\"\u003e\u003ccode\u003e629ba64\u003c/code\u003e\u003c/a\u003e Remove deprecated license classifier.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/dca5723086a00e8c145a84761b0ce810a8079892\"\u003e\u003ccode\u003edca5723\u003c/code\u003e\u003c/a\u003e Bump version: 6.1.1 → 6.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f69166a08444db4736c611cdc7746eeac9a2f158\"\u003e\u003ccode\u003ef69166a\u003c/code\u003e\u003c/a\u003e Also trigger the sqlite warning.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v6.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.8.1 to 3.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.0 (2025-07-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrops support for (end-of-life) Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes an error with conflicting kwargs between AsyncToSync and the wrapped\nfunction. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/471\"\u003e#471\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes Local isolation between asyncio Tasks. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/478\"\u003e#478\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes a deadlock in CurrentThreadExecutor with nested async_to_sync →\nsync_to_async → async_to_sync → create_task calls. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/fc0599e122edcde0f84962b219ea591428124106\"\u003e\u003ccode\u003efc0599e\u003c/code\u003e\u003c/a\u003e Releasing 3.9.0. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b126e0c01144bd980937b658dd6eaf236150fe63\"\u003e\u003ccode\u003eb126e0c\u003c/code\u003e\u003c/a\u003e Removed unneeded typing workaround (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ef1678a65b891ef838525d1f3a658875acb9018a\"\u003e\u003ccode\u003eef1678a\u003c/code\u003e\u003c/a\u003e Migrate work for finished \u003ccode\u003eCurrentThreadExecutor\u003c/code\u003e to previous executor (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/494\"\u003e#494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/37870f58963c38617a910743ba69311ec8e4e0d0\"\u003e\u003ccode\u003e37870f5\u003c/code\u003e\u003c/a\u003e Fixed reference cycle in Local (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/508\"\u003e#508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/ec6f666621407674e80d039bf235ba2662193bdb\"\u003e\u003ccode\u003eec6f666\u003c/code\u003e\u003c/a\u003e Add MicroPie framework to \u003ccode\u003eimplementations.rst\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/5eff04dce46b74172a1d6d1c5b02409f0afe33b6\"\u003e\u003ccode\u003e5eff04d\u003c/code\u003e\u003c/a\u003e Lazily bind ApplicationCommunicator to event loop (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/58da2878a5e010eeb9d187f6954d93288d1825d7\"\u003e\u003ccode\u003e58da287\u003c/code\u003e\u003c/a\u003e Add Flama to implementations.rst (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/327821b533287d09bd2669c73c1c3d5119ce8bd5\"\u003e\u003ccode\u003e327821b\u003c/code\u003e\u003c/a\u003e Avoid using event_loop.is_running() (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/507\"\u003e#507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/719c46d213aaf1d60f0269c7f73bf8e2a45b43fa\"\u003e\u003ccode\u003e719c46d\u003c/code\u003e\u003c/a\u003e Modernize loop handling in asgiref.server  (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/a0e215964927f81f3984ec042815a950448f64e5\"\u003e\u003ccode\u003ea0e2159\u003c/code\u003e\u003c/a\u003e Avoid vendoring asyncio.run (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/asgiref/compare/3.8.1...3.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rpds-py` from 0.25.1 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crate-py/rpds/releases\"\u003erpds-py's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild CPython 3.14 wheels by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/134\"\u003ecrate-py/rpds#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire maturin\u0026gt;=1.9.0 to ensure support for PEP 639 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/crate-py/rpds/pull/146\"\u003ecrate-py/rpds#146\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.25.1...v0.26.0\"\u003ehttps://github.com/crate-py/rpds/compare/v0.25.1...v0.26.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/ff9278f7e718760bb052cd4c130bbdeca8d27b20\"\u003e\u003ccode\u003eff9278f\u003c/code\u003e\u003c/a\u003e Tag a release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/d2f69ef82b23135fedc8b42bda743f9c53af607d\"\u003e\u003ccode\u003ed2f69ef\u003c/code\u003e\u003c/a\u003e Update requirements.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/58ee607148940533f212893ac886f7e82b3c35bb\"\u003e\u003ccode\u003e58ee607\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/146\"\u003e#146\u003c/a\u003e from edgarrmondragon/136-require-maturin-1.9-pep639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/5433ab6aa936aa835d97bb204fd73d289525e331\"\u003e\u003ccode\u003e5433ab6\u003c/code\u003e\u003c/a\u003e Require maturin\u0026gt;=1.9.0 to ensure support for PEP 639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/7557e538fb8d14c4b534133b9ac48f3940e787b4\"\u003e\u003ccode\u003e7557e53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/144\"\u003e#144\u003c/a\u003e from crate-py/dependabot/github_actions/github/codeql...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/d0963ae1a2b0bcc61702adb3249ae3b73bc32dda\"\u003e\u003ccode\u003ed0963ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/145\"\u003e#145\u003c/a\u003e from crate-py/dependabot/github_actions/astral-sh/set...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/513ec227cba30c93b4df9c820b4d54e7e6dcb318\"\u003e\u003ccode\u003e513ec22\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6.3.0 to 6.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/cbb4277105e08df8248c7e64ab99d5a51a1b4568\"\u003e\u003ccode\u003ecbb4277\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.29.0 to 3.29.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/25123e9a2fed652d68ec490ac0481e543f3c77fd\"\u003e\u003ccode\u003e25123e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/143\"\u003e#143\u003c/a\u003e from crate-py/dependabot/github_actions/PyO3/maturin-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crate-py/rpds/commit/7a59bb7f1848a1ac0793bf77066a1381d33de20f\"\u003e\u003ccode\u003e7a59bb7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/crate-py/rpds/issues/142\"\u003e#142\u003c/a\u003e from crate-py/dependabot/github_actions/astral-sh/set...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crate-py/rpds/compare/v0.25.1...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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/AlexanderZug/django_template/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderZug%2Fdjango_template/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":"/backend","pr_created_at":"2025-07-07T06:12:49.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2645592738","node_id":"PR_kwDOC1hkXs6dsIqi","number":2369,"state":"open","title":"build(deps-dev): bump uritemplate from 4.1.1 to 4.2.0 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-07T06:12:49.000Z","updated_at":"2025-07-07T06:12:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/varfish-org/varfish-server/pull/2369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/varfish-org%2Fvarfish-server/issues/2369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2369/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-07-02T18:59:12.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2636333679","node_id":"PR_kwDOKrpNGs6dI0Jv","number":1817,"state":"closed","title":"Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-07-02T18:59:25.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-02T18:59:12.000Z","updated_at":"2025-07-02T18:59:25.000Z","time_to_close":13,"merged_at":"2025-07-02T18:59:25.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/shilu10/MANN-Meta-Learning/pull/1817","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shilu10%2FMANN-Meta-Learning/issues/1817","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1817/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-06-30T09:34:56.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2628343965","node_id":"PR_kwDOLLJtpc6cqVid","number":49,"state":"closed","title":"Bump the python-packages group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-07-07T07:16:37.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-30T09:34:56.000Z","updated_at":"2025-07-07T07:16:37.000Z","time_to_close":596501,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":7,"packages":[{"name":"django","old_version":"5.2.1","new_version":"5.2.3","repository_url":"https://github.com/django/django"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"ruff","old_version":"0.11.12","new_version":"0.12.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.16.0","new_version":"1.16.1","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.2.0","new_version":"5.2.1","repository_url":"https://github.com/sponsors/typeddjango"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django](https://github.com/django/django) | `5.2.1` | `5.2.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.12` | `0.12.1` |\n| [mypy](https://github.com/python/mypy) | `1.16.0` | `1.16.1` |\n| [django-stubs](https://github.com/sponsors/typeddjango) | `5.2.0` | `5.2.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `6.2.1` |\n| [uritemplate](https://github.com/python-hyper/uritemplate) | `4.1.1` | `4.2.0` |\n\n\nUpdates `django` from 5.2.1 to 5.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/15883bc669303242742a81f06958175dddbb66de\"\u003e\u003ccode\u003e15883bc\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.3 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/264003146f951a798e573ca563d0bf817fb91ad3\"\u003e\u003ccode\u003e2640031\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/373\"\u003e#373\u003c/a\u003e -- Doc'd that on_delete is ignored for ForeignObject.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6f99c8856d17e29564bc5d432bb7d7b8f73bc73c\"\u003e\u003ccode\u003e6f99c88\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36449\"\u003e#36449\u003c/a\u003e -- Fixed field types in example model using ForeignObject.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/aec11dbb4c2c66af8d09dc194a46950751b0ea34\"\u003e\u003ccode\u003eaec11db\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36419\"\u003e#36419\u003c/a\u003e -- Fixed BulkUpdateTests.test_json_field_sql_null() crash...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/cc5079730a50e77590d465563807871b8f230ff5\"\u003e\u003ccode\u003ecc50797\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36446\"\u003e#36446\u003c/a\u003e -- Restored \u0026quot;q\u0026quot; in internal MediaType.params property.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/6fc620b4a8e91839b93af2b52d80bdbd5f8a1fcc\"\u003e\u003ccode\u003e6fc620b\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36419\"\u003e#36419\u003c/a\u003e -- Ensured for_save was propagated when resolving expres...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/8fcc83953c350e158a484bf1da0aa1b79b69bb07\"\u003e\u003ccode\u003e8fcc839\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-48432 -- Prevented log injection in remaining response ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9d7fc9eb1c79242f3330aa62629699a8b5fc5451\"\u003e\u003ccode\u003e9d7fc9e\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs CVE-2025-48432 -- Made SuspiciousOperation logging use log_respo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c042af7147490e3ae07d219cf10f3d6d1b16cad3\"\u003e\u003ccode\u003ec042af7\u003c/code\u003e\u003c/a\u003e [5.2.x] Refactored logging_tests to reuse assertions for log records.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/5901cfe591139b4389171ba738be81e8f4d5cfc9\"\u003e\u003ccode\u003e5901cfe\u003c/code\u003e\u003c/a\u003e [5.2.x] Updated translations from Transifex.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.1...5.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.11.12 to 0.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Extend \u003ccode\u003eEM101\u003c/code\u003e to support byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18867\"\u003e#18867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH202\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18763\"\u003e#18763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Add \u003ccode\u003eAsyncMock\u003c/code\u003e methods to \u003ccode\u003einvalid-mock-access\u003c/code\u003e (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18547\"\u003e#18547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore \u003ccode\u003e__init__.py\u003c/code\u003e files in (\u003ccode\u003ePLC0414\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18400\"\u003e#18400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Trigger \u003ccode\u003eRUF037\u003c/code\u003e for empty string and byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18862\"\u003e#18862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix missing blank lines before decorated classes in \u003ccode\u003e.pyi\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18888\"\u003e#18888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid generating diagnostics with per-file ignores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18801\"\u003e#18801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle parenthesized arguments in \u003ccode\u003eremove_argument\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18805\"\u003e#18805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Avoid false positive for \u003ccode\u003eexc_info=True\u003c/code\u003e outside \u003ccode\u003elogger.exception\u003c/code\u003e (\u003ccode\u003eLOG014\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18737\"\u003e#18737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Enforce \u003ccode\u003epytest\u003c/code\u003e import for decorators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18779\"\u003e#18779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Mark autofix for \u003ccode\u003ePT001\u003c/code\u003e and \u003ccode\u003ePT023\u003c/code\u003e as unsafe if there's comments in the decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18792\"\u003e#18792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] \u003ccode\u003ePT001\u003c/code\u003e/\u003ccode\u003ePT023\u003c/code\u003e fix makes syntax error on parenthesized decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18782\"\u003e#18782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-raise\u003c/code\u003e] Make fix unsafe if it deletes comments (\u003ccode\u003eRSE102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18788\"\u003e#18788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix \u003ccode\u003eSIM911\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18793\"\u003e#18793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix false negatives for shadowed bindings (\u003ccode\u003eSIM910\u003c/code\u003e, \u003ccode\u003eSIM911\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18794\"\u003e#18794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve original behavior for \u003ccode\u003eexcept ()\u003c/code\u003e and bare \u003ccode\u003eexcept\u003c/code\u003e (\u003ccode\u003eSIM105\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18213\"\u003e#18213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI041\u003c/code\u003e's fix causing \u003ccode\u003eTypeError\u003c/code\u003e with \u003ccode\u003eNone | None | ...\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18637\"\u003e#18637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF101\u003c/code\u003e autofix creating a syntax error and mark autofix as unsafe if there are comments in the \u003ccode\u003elist\u003c/code\u003e call expr (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18803\"\u003e#18803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix false negative in \u003ccode\u003ePERF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18866\"\u003e#18866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid flattening nested \u003ccode\u003emin\u003c/code\u003e/\u003ccode\u003emax\u003c/code\u003e when outer call has single argument (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16885\"\u003e#16885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2801\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18857\"\u003e#18857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Mark \u003ccode\u003ePLE0241\u003c/code\u003e autofix as unsafe if there's comments in the base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18832\"\u003e#18832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Suppress \u003ccode\u003ePLE2510\u003c/code\u003e/\u003ccode\u003ePLE2512\u003c/code\u003e/\u003ccode\u003ePLE2513\u003c/code\u003e/\u003ccode\u003ePLE2514\u003c/code\u003e/\u003ccode\u003ePLE2515\u003c/code\u003e autofix if the text contains an odd number of backslashes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Detect more exotic float literals in \u003ccode\u003eFURB164\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18925\"\u003e#18925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB163\u003c/code\u003e autofix creating a syntax error for \u003ccode\u003eyield\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18756\"\u003e#18756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB129\u003c/code\u003e autofix as unsafe if there's comments in the \u003ccode\u003ereadlines\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18858\"\u003e#18858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positives and negatives in \u003ccode\u003eRUF010\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18690\"\u003e#18690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix casing of \u003ccode\u003eanalyze.direction\u003c/code\u003e variant names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18892\"\u003e#18892\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix f-string interpolation escaping in generated fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18882\"\u003e#18882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-return\u003c/code\u003e] Mark \u003ccode\u003eRET501\u003c/code\u003e fix unsafe if comments are inside (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18780\"\u003e#18780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Fix detection for large integer sleep durations in \u003ccode\u003eASYNC116\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18767\"\u003e#18767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Mark autofix for \u003ccode\u003eASYNC115\u003c/code\u003e as unsafe if the call expression contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18753\"\u003e#18753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark autofix for \u003ccode\u003eB004\u003c/code\u003e as unsafe if the \u003ccode\u003ehasattr\u003c/code\u003e call expr contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18755\"\u003e#18755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehension\u003c/code\u003e] Mark autofix for \u003ccode\u003eC420\u003c/code\u003e as unsafe if there's comments inside the dict comprehension (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18768\"\u003e#18768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Handle template strings for comprehension fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18710\"\u003e#18710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-future-annotations\u003c/code\u003e] Add autofix (\u003ccode\u003eFA100\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18903\"\u003e#18903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Mark \u003ccode\u003eF504\u003c/code\u003e/\u003ccode\u003eF522\u003c/code\u003e/\u003ccode\u003eF523\u003c/code\u003e autofix as unsafe if there's a call with side effect (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow fix with comments and document performance implications (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect more exotic \u003ccode\u003eNaN\u003c/code\u003e literals in \u003ccode\u003ePLW0177\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18630\"\u003e#18630\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.12.1\u003c/h2\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Extend \u003ccode\u003eEM101\u003c/code\u003e to support byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18867\"\u003e#18867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add autofix for \u003ccode\u003ePTH202\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18763\"\u003e#18763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Add \u003ccode\u003eAsyncMock\u003c/code\u003e methods to \u003ccode\u003einvalid-mock-access\u003c/code\u003e (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18547\"\u003e#18547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore \u003ccode\u003e__init__.py\u003c/code\u003e files in (\u003ccode\u003ePLC0414\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18400\"\u003e#18400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Trigger \u003ccode\u003eRUF037\u003c/code\u003e for empty string and byte strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18862\"\u003e#18862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix missing blank lines before decorated classes in \u003ccode\u003e.pyi\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18888\"\u003e#18888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid generating diagnostics with per-file ignores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18801\"\u003e#18801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle parenthesized arguments in \u003ccode\u003eremove_argument\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18805\"\u003e#18805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Avoid false positive for \u003ccode\u003eexc_info=True\u003c/code\u003e outside \u003ccode\u003elogger.exception\u003c/code\u003e (\u003ccode\u003eLOG014\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18737\"\u003e#18737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Enforce \u003ccode\u003epytest\u003c/code\u003e import for decorators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18779\"\u003e#18779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Mark autofix for \u003ccode\u003ePT001\u003c/code\u003e and \u003ccode\u003ePT023\u003c/code\u003e as unsafe if there's comments in the decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18792\"\u003e#18792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] \u003ccode\u003ePT001\u003c/code\u003e/\u003ccode\u003ePT023\u003c/code\u003e fix makes syntax error on parenthesized decorator (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18782\"\u003e#18782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-raise\u003c/code\u003e] Make fix unsafe if it deletes comments (\u003ccode\u003eRSE102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18788\"\u003e#18788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix \u003ccode\u003eSIM911\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18793\"\u003e#18793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix false negatives for shadowed bindings (\u003ccode\u003eSIM910\u003c/code\u003e, \u003ccode\u003eSIM911\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18794\"\u003e#18794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Preserve original behavior for \u003ccode\u003eexcept ()\u003c/code\u003e and bare \u003ccode\u003eexcept\u003c/code\u003e (\u003ccode\u003eSIM105\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18213\"\u003e#18213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix \u003ccode\u003ePYI041\u003c/code\u003e's fix causing \u003ccode\u003eTypeError\u003c/code\u003e with \u003ccode\u003eNone | None | ...\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18637\"\u003e#18637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix \u003ccode\u003ePERF101\u003c/code\u003e autofix creating a syntax error and mark autofix as unsafe if there are comments in the \u003ccode\u003elist\u003c/code\u003e call expr (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18803\"\u003e#18803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix false negative in \u003ccode\u003ePERF401\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18866\"\u003e#18866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid flattening nested \u003ccode\u003emin\u003c/code\u003e/\u003ccode\u003emax\u003c/code\u003e when outer call has single argument (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16885\"\u003e#16885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2801\u003c/code\u003e autofix creating a syntax error (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18857\"\u003e#18857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Mark \u003ccode\u003ePLE0241\u003c/code\u003e autofix as unsafe if there's comments in the base classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18832\"\u003e#18832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Suppress \u003ccode\u003ePLE2510\u003c/code\u003e/\u003ccode\u003ePLE2512\u003c/code\u003e/\u003ccode\u003ePLE2513\u003c/code\u003e/\u003ccode\u003ePLE2514\u003c/code\u003e/\u003ccode\u003ePLE2515\u003c/code\u003e autofix if the text contains an odd number of backslashes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18856\"\u003e#18856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Detect more exotic float literals in \u003ccode\u003eFURB164\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18925\"\u003e#18925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB163\u003c/code\u003e autofix creating a syntax error for \u003ccode\u003eyield\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18756\"\u003e#18756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB129\u003c/code\u003e autofix as unsafe if there's comments in the \u003ccode\u003ereadlines\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18858\"\u003e#18858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positives and negatives in \u003ccode\u003eRUF010\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18690\"\u003e#18690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix casing of \u003ccode\u003eanalyze.direction\u003c/code\u003e variant names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18892\"\u003e#18892\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix f-string interpolation escaping in generated fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18882\"\u003e#18882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-return\u003c/code\u003e] Mark \u003ccode\u003eRET501\u003c/code\u003e fix unsafe if comments are inside (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18780\"\u003e#18780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Fix detection for large integer sleep durations in \u003ccode\u003eASYNC116\u003c/code\u003e rule (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18767\"\u003e#18767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Mark autofix for \u003ccode\u003eASYNC115\u003c/code\u003e as unsafe if the call expression contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18753\"\u003e#18753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark autofix for \u003ccode\u003eB004\u003c/code\u003e as unsafe if the \u003ccode\u003ehasattr\u003c/code\u003e call expr contains comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18755\"\u003e#18755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehension\u003c/code\u003e] Mark autofix for \u003ccode\u003eC420\u003c/code\u003e as unsafe if there's comments inside the dict comprehension (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18768\"\u003e#18768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Handle template strings for comprehension fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18710\"\u003e#18710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-future-annotations\u003c/code\u003e] Add autofix (\u003ccode\u003eFA100\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18903\"\u003e#18903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Mark \u003ccode\u003eF504\u003c/code\u003e/\u003ccode\u003eF522\u003c/code\u003e/\u003ccode\u003eF523\u003c/code\u003e autofix as unsafe if there's a call with side effect (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18839\"\u003e#18839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow fix with comments and document performance implications (\u003ccode\u003ePLW3301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18936\"\u003e#18936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Detect more exotic \u003ccode\u003eNaN\u003c/code\u003e literals in \u003ccode\u003ePLW0177\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18630\"\u003e#18630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC1802\u003c/code\u003e autofix creating a syntax error and mark autofix as unsafe if there's comments in the \u003ccode\u003elen\u003c/code\u003e call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/18836\"\u003e#18836\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/32c54189cb45a9d0409a1140265ce6d5fcec214d\"\u003e\u003ccode\u003e32c5418\u003c/code\u003e\u003c/a\u003e Bump 0.12.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18969\"\u003e#18969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b85c219283dcdae474642e9174352da5d9aee132\"\u003e\u003ccode\u003eb85c219\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eFastAPI\u003c/code\u003e] Add fix safety section to \u003ccode\u003eFAST002\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18940\"\u003e#18940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b1d1cf1d382acd745a57a391a7befb6c300f6c9a\"\u003e\u003ccode\u003eb1d1cf1\u003c/code\u003e\u003c/a\u003e [ty] Add regression test for leading tab mis-alignment in diagnostic renderin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1dcdf7f41d80b819576b8e146c1af9e72b44d2da\"\u003e\u003ccode\u003e1dcdf7f\u003c/code\u003e\u003c/a\u003e [ty] Resolve python environment in \u003ccode\u003eOptions::to_program_settings\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18960\"\u003e#18960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d00697621e2a772e9ad0b25c4c74f1572d72fd29\"\u003e\u003ccode\u003ed006976\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Fix false positives and negatives in \u003ccode\u003eRUF010\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18690\"\u003e#18690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/76619b96e504d63e574227e8d31d6ecfcd32d1c7\"\u003e\u003ccode\u003e76619b9\u003c/code\u003e\u003c/a\u003e [ty] Fix rendering of long lines that are indented with tabs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e25cfba2b2fb607e16102cb5cd84cd775882d80\"\u003e\u003ccode\u003e6e25cfb\u003c/code\u003e\u003c/a\u003e [ty] Add regression test for diagnostic rendering panic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/76387295a581ed5c665b685e1d69fe2751ad24b1\"\u003e\u003ccode\u003e7638729\u003c/code\u003e\u003c/a\u003e [ty] Move venv and conda env discovery to \u003ccode\u003eSearchPath::from_settings\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18938\"\u003e#18938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d04e63a6d9dbb5c751c99d113d7eaf98b765b426\"\u003e\u003ccode\u003ed04e63a\u003c/code\u003e\u003c/a\u003e [ty] Add regression-benchmark for attribute-assignment hang (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18957\"\u003e#18957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86fd9b634e5526d2093aeb5a37dc6f30cefc1925\"\u003e\u003ccode\u003e86fd9b6\u003c/code\u003e\u003c/a\u003e [ty] Format conflicting types as an enumeration (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/18956\"\u003e#18956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.11.12...0.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.16.0 to 1.16.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/68b8fa097d080c92d30a429bc74de8acd56caf85\"\u003e\u003ccode\u003e68b8fa0\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e253eded9c887630f3f5404c4b9f73f13570476a\"\u003e\u003ccode\u003ee253ede\u003c/code\u003e\u003c/a\u003e Single underscore is not a sunder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19273\"\u003e#19273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9fb5ff66c51bd971d7a6b1260cc0ec9f1b82cc06\"\u003e\u003ccode\u003e9fb5ff6\u003c/code\u003e\u003c/a\u003e Fix properties with setters after deleters (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19248\"\u003e#19248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c20fd7838338cd65d6c7c6e252eda85996cfc98e\"\u003e\u003ccode\u003ec20fd78\u003c/code\u003e\u003c/a\u003e Handle assignment of bound methods in class bodies (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19233\"\u003e#19233\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c86480ce51e4bb6db21f4b3f0b3ec8833aafc8ce\"\u003e\u003ccode\u003ec86480c\u003c/code\u003e\u003c/a\u003e Tighten metaclass \u003cstrong\u003ecall\u003c/strong\u003e handling in protocols (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19191\"\u003e#19191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/cb3c6ec6a7aaa96a0e26768a946ac63ea14115f2\"\u003e\u003ccode\u003ecb3c6ec\u003c/code\u003e\u003c/a\u003e Fix crash on partial type used as context (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19216\"\u003e#19216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c39f5e73c47182e51c5d8d488f7cc7301257c974\"\u003e\u003ccode\u003ec39f5e7\u003c/code\u003e\u003c/a\u003e [mypyc] Fixing condition for handling user-defined \u003cstrong\u003edel\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19188\"\u003e#19188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0a4f28431faa18e59d35bc269cb0ea6c00810653\"\u003e\u003ccode\u003e0a4f284\u003c/code\u003e\u003c/a\u003e Fix crash on invalid property inside its own body (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19208\"\u003e#19208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9b079f6592740a51c0e629728eeb0324ad85126f\"\u003e\u003ccode\u003e9b079f6\u003c/code\u003e\u003c/a\u003e Bump version to 1.16.1+dev\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.16.0...v1.16.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 5.2.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/typeddjango/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.1.1 to 6.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\nonce::CoverageWarning\u003c/p\u003e\n\u003cp\u003eThis fixes most of the bad interactions that are occurring on pytest 8.4 with \u003ccode\u003efilterwarnings=error\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe plugin will check if there already matching rules for the 3 categories\n(\u003ccode\u003eResourceWarning\u003c/code\u003e, \u003ccode\u003ePytestCovWarning\u003c/code\u003e, \u003ccode\u003eCoverageWarning\u003c/code\u003e) and message (\u003ccode\u003eunclosed database in \u0026lt;sqlite3.Connection object at\u003c/code\u003e) before adding the filters.\u003c/p\u003e\n\u003cp\u003eThis means you can have this in your pytest configuration for complete oblivion (not recommended, if that is not clear)::\u003c/p\u003e\n\u003cp\u003efilterwarnings = [\n\u0026quot;error\u0026quot;,\n\u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot;,\n\u0026quot;ignore::PytestCovWarning\u0026quot;,\n\u0026quot;ignore::CoverageWarning\u0026quot;,\n]\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/55dbe43f04f839b760ea346e560276d641998c77\"\u003e\u003ccode\u003e55dbe43\u003c/code\u003e\u003c/a\u003e Bump version: 6.2.0 → 6.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/d17e9b765e9832e70fe8101daa2f5f42ce447cc2\"\u003e\u003ccode\u003ed17e9b7\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8964ab7595dd10748cad66376289476049340ea4\"\u003e\u003ccode\u003e8964ab7\u003c/code\u003e\u003c/a\u003e Add a note for this warning disable.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/e932e41e50f37d03a4d600084411661bc1f08ab8\"\u003e\u003ccode\u003ee932e41\u003c/code\u003e\u003c/a\u003e Prevent unimported warnings @ pytest-xdist workers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/573379ba34539db32cb3a43222f33b7c304af34a\"\u003e\u003ccode\u003e573379b\u003c/code\u003e\u003c/a\u003e Bring pytest-cov's suprocess management in line with coverage's process_start...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f1884e854f2687ccfe36747a11e7f3352f168f90\"\u003e\u003ccode\u003ef1884e8\u003c/code\u003e\u003c/a\u003e Fix xdist pin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/512c6699010cc0d8145f1f926d876cafba840015\"\u003e\u003ccode\u003e512c669\u003c/code\u003e\u003c/a\u003e Added minium version requirements for pluggin (for new-style hookwrappers). P...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/629ba644a56148d09fe0f2c20602681bc20027a7\"\u003e\u003ccode\u003e629ba64\u003c/code\u003e\u003c/a\u003e Remove deprecated license classifier.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/dca5723086a00e8c145a84761b0ce810a8079892\"\u003e\u003ccode\u003edca5723\u003c/code\u003e\u003c/a\u003e Bump version: 6.1.1 → 6.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f69166a08444db4736c611cdc7746eeac9a2f158\"\u003e\u003ccode\u003ef69166a\u003c/code\u003e\u003c/a\u003e Also trigger the sqlite warning.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v6.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uritemplate` from 4.1.1 to 4.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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/AlexanderZug/django_template/pull/49","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexanderZug%2Fdjango_template/issues/49","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/49/packages"}},{"old_version":"4.1.1","new_version":"4.2.0","update_type":"minor","path":null,"pr_created_at":"2025-06-28T18:39:47.000Z","version_change":"4.1.1 → 4.2.0","issue":{"uuid":"2626401305","node_id":"PR_kwDOFAu7ns6ci7QZ","number":22,"state":"open","title":"Bump uritemplate from 4.1.1 to 4.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-06-28T18:39:47.000Z","updated_at":"2025-06-28T18:39:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"uritemplate","old_version":"4.1.1","new_version":"4.2.0","repository_url":"https://github.com/python-hyper/uritemplate"}],"path":null,"ecosystem":"pip"},"body":"Bumps [uritemplate](https://github.com/python-hyper/uritemplate) from 4.1.1 to 4.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-hyper/uritemplate/blob/main/HISTORY.rst\"\u003euritemplate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.0 - 2025-06-01\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eFix bug where already url-encoded values were further escaped and\nencoded (See \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/99\"\u003epython-hyper/uritemplate#99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003euritemplate/variable.py\u003c/code\u003e to enable fixing the\naforementioned bug.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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-hyper/uritemplate/commit/e89ada10dd4e9deb8c576f3f0de8a813fbea9c02\"\u003e\u003ccode\u003ee89ada1\u003c/code\u003e\u003c/a\u003e Fix incorrect PyPA hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/4c299c8bad44b0c9914f6d106a1707f7ddb040a2\"\u003e\u003ccode\u003e4c299c8\u003c/code\u003e\u003c/a\u003e Add release notes for 4.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0f93d745c2876bd034331b0ce64555c3d232e435\"\u003e\u003ccode\u003e0f93d74\u003c/code\u003e\u003c/a\u003e Add release workflow for automated publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/06689acff0393cf6e9ef329ec83f4a2ca1e63e62\"\u003e\u003ccode\u003e06689ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-hyper/uritemplate/issues/120\"\u003e#120\u003c/a\u003e from python-hyper/bug/99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/9a3307e54bf7c8b7d1dab9df5bb35a59d2816939\"\u003e\u003ccode\u003e9a3307e\u003c/code\u003e\u003c/a\u003e Ensure proper quoting for various operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/0ba02f65ded9f03b522b9809bead0c4a144a80d3\"\u003e\u003ccode\u003e0ba02f6\u003c/code\u003e\u003c/a\u003e Add new uritemplate-test testcases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/a56e9ae5b9f1fcc4c7c29974d89f9fd037fd4130\"\u003e\u003ccode\u003ea56e9ae\u003c/code\u003e\u003c/a\u003e Fix dependabot config typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c3c8090827dc261e5f021ea240f6480379e63fe8\"\u003e\u003ccode\u003ec3c8090\u003c/code\u003e\u003c/a\u003e Fix annotations in tests on py39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/11787d81fc0123e7279bd573561ab190cf764017\"\u003e\u003ccode\u003e11787d8\u003c/code\u003e\u003c/a\u003e Add python 3.13 to testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-hyper/uritemplate/commit/c58b8af9b1f60da6b277b762478aecf0a9bc3130\"\u003e\u003ccode\u003ec58b8af\u003c/code\u003e\u003c/a\u003e Fix mypy for tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-hyper/uritemplate/compare/4.1.1...4.2.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=uritemplate\u0026package-manager=pip\u0026previous-version=4.1.1\u0026new-version=4.2.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/smilerz/recipes/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/smilerz%2Frecipes/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"}}]}